Skip to main content

ra4m2_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.30.00, with svd2pac 0.6.1 on Sun, 15 Mar 2026 07:07:12 +0000
19
20#![allow(clippy::identity_op)]
21#![allow(clippy::module_inception)]
22#![allow(clippy::derivable_impls)]
23#[allow(unused_imports)]
24use crate::common::sealed;
25#[allow(unused_imports)]
26use crate::common::*;
27#[doc = r"Control Register"]
28unsafe impl ::core::marker::Send for super::Pfs {}
29unsafe impl ::core::marker::Sync for super::Pfs {}
30impl super::Pfs {
31    #[allow(unused)]
32    #[inline(always)]
33    pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
34        self.ptr
35    }
36
37    #[doc = "Port 00%s Pin Function Select Register"]
38    #[inline(always)]
39    pub const fn p00pfs(
40        &self,
41    ) -> &'static crate::common::ClusterRegisterArray<
42        crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW>,
43        8,
44        0x4,
45    > {
46        unsafe {
47            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x0usize))
48        }
49    }
50    #[inline(always)]
51    pub const fn p000pfs(
52        &self,
53    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
54        unsafe {
55            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
56                self._svd2pac_as_ptr().add(0x0usize),
57            )
58        }
59    }
60    #[inline(always)]
61    pub const fn p001pfs(
62        &self,
63    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
64        unsafe {
65            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
66                self._svd2pac_as_ptr().add(0x4usize),
67            )
68        }
69    }
70    #[inline(always)]
71    pub const fn p002pfs(
72        &self,
73    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
74        unsafe {
75            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
76                self._svd2pac_as_ptr().add(0x8usize),
77            )
78        }
79    }
80    #[inline(always)]
81    pub const fn p003pfs(
82        &self,
83    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
84        unsafe {
85            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
86                self._svd2pac_as_ptr().add(0xcusize),
87            )
88        }
89    }
90    #[inline(always)]
91    pub const fn p004pfs(
92        &self,
93    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
94        unsafe {
95            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
96                self._svd2pac_as_ptr().add(0x10usize),
97            )
98        }
99    }
100    #[inline(always)]
101    pub const fn p005pfs(
102        &self,
103    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
104        unsafe {
105            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
106                self._svd2pac_as_ptr().add(0x14usize),
107            )
108        }
109    }
110    #[inline(always)]
111    pub const fn p006pfs(
112        &self,
113    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
114        unsafe {
115            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
116                self._svd2pac_as_ptr().add(0x18usize),
117            )
118        }
119    }
120    #[inline(always)]
121    pub const fn p007pfs(
122        &self,
123    ) -> &'static crate::common::Reg<self::P00Pfs_SPEC, crate::common::RW> {
124        unsafe {
125            crate::common::Reg::<self::P00Pfs_SPEC, crate::common::RW>::from_ptr(
126                self._svd2pac_as_ptr().add(0x1cusize),
127            )
128        }
129    }
130
131    #[doc = "Port 00%s Pin Function Select Register"]
132    #[inline(always)]
133    pub const fn p00pfs_ha(
134        &self,
135    ) -> &'static crate::common::ClusterRegisterArray<
136        crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW>,
137        8,
138        0x4,
139    > {
140        unsafe {
141            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x2usize))
142        }
143    }
144    #[inline(always)]
145    pub const fn p000pfs_ha(
146        &self,
147    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
148        unsafe {
149            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
150                self._svd2pac_as_ptr().add(0x2usize),
151            )
152        }
153    }
154    #[inline(always)]
155    pub const fn p001pfs_ha(
156        &self,
157    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
158        unsafe {
159            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
160                self._svd2pac_as_ptr().add(0x6usize),
161            )
162        }
163    }
164    #[inline(always)]
165    pub const fn p002pfs_ha(
166        &self,
167    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
168        unsafe {
169            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
170                self._svd2pac_as_ptr().add(0xausize),
171            )
172        }
173    }
174    #[inline(always)]
175    pub const fn p003pfs_ha(
176        &self,
177    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
178        unsafe {
179            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
180                self._svd2pac_as_ptr().add(0xeusize),
181            )
182        }
183    }
184    #[inline(always)]
185    pub const fn p004pfs_ha(
186        &self,
187    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
188        unsafe {
189            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
190                self._svd2pac_as_ptr().add(0x12usize),
191            )
192        }
193    }
194    #[inline(always)]
195    pub const fn p005pfs_ha(
196        &self,
197    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
198        unsafe {
199            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
200                self._svd2pac_as_ptr().add(0x16usize),
201            )
202        }
203    }
204    #[inline(always)]
205    pub const fn p006pfs_ha(
206        &self,
207    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
208        unsafe {
209            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
210                self._svd2pac_as_ptr().add(0x1ausize),
211            )
212        }
213    }
214    #[inline(always)]
215    pub const fn p007pfs_ha(
216        &self,
217    ) -> &'static crate::common::Reg<self::P00PfsHa_SPEC, crate::common::RW> {
218        unsafe {
219            crate::common::Reg::<self::P00PfsHa_SPEC, crate::common::RW>::from_ptr(
220                self._svd2pac_as_ptr().add(0x1eusize),
221            )
222        }
223    }
224
225    #[doc = "Port 00%s Pin Function Select Register"]
226    #[inline(always)]
227    pub const fn p00pfs_by(
228        &self,
229    ) -> &'static crate::common::ClusterRegisterArray<
230        crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW>,
231        8,
232        0x4,
233    > {
234        unsafe {
235            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x3usize))
236        }
237    }
238    #[inline(always)]
239    pub const fn p000pfs_by(
240        &self,
241    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
242        unsafe {
243            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
244                self._svd2pac_as_ptr().add(0x3usize),
245            )
246        }
247    }
248    #[inline(always)]
249    pub const fn p001pfs_by(
250        &self,
251    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
252        unsafe {
253            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
254                self._svd2pac_as_ptr().add(0x7usize),
255            )
256        }
257    }
258    #[inline(always)]
259    pub const fn p002pfs_by(
260        &self,
261    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
262        unsafe {
263            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
264                self._svd2pac_as_ptr().add(0xbusize),
265            )
266        }
267    }
268    #[inline(always)]
269    pub const fn p003pfs_by(
270        &self,
271    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
272        unsafe {
273            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
274                self._svd2pac_as_ptr().add(0xfusize),
275            )
276        }
277    }
278    #[inline(always)]
279    pub const fn p004pfs_by(
280        &self,
281    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
282        unsafe {
283            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
284                self._svd2pac_as_ptr().add(0x13usize),
285            )
286        }
287    }
288    #[inline(always)]
289    pub const fn p005pfs_by(
290        &self,
291    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
292        unsafe {
293            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
294                self._svd2pac_as_ptr().add(0x17usize),
295            )
296        }
297    }
298    #[inline(always)]
299    pub const fn p006pfs_by(
300        &self,
301    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
302        unsafe {
303            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
304                self._svd2pac_as_ptr().add(0x1busize),
305            )
306        }
307    }
308    #[inline(always)]
309    pub const fn p007pfs_by(
310        &self,
311    ) -> &'static crate::common::Reg<self::P00PfsBy_SPEC, crate::common::RW> {
312        unsafe {
313            crate::common::Reg::<self::P00PfsBy_SPEC, crate::common::RW>::from_ptr(
314                self._svd2pac_as_ptr().add(0x1fusize),
315            )
316        }
317    }
318
319    #[doc = "Port 008 Pin Function Select Register"]
320    #[inline(always)]
321    pub const fn p008pfs(
322        &self,
323    ) -> &'static crate::common::Reg<self::P008Pfs_SPEC, crate::common::RW> {
324        unsafe {
325            crate::common::Reg::<self::P008Pfs_SPEC, crate::common::RW>::from_ptr(
326                self._svd2pac_as_ptr().add(32usize),
327            )
328        }
329    }
330
331    #[doc = "Port 008 Pin Function Select Register"]
332    #[inline(always)]
333    pub const fn p008pfs_ha(
334        &self,
335    ) -> &'static crate::common::Reg<self::P008PfsHa_SPEC, crate::common::RW> {
336        unsafe {
337            crate::common::Reg::<self::P008PfsHa_SPEC, crate::common::RW>::from_ptr(
338                self._svd2pac_as_ptr().add(34usize),
339            )
340        }
341    }
342
343    #[doc = "Port 008 Pin Function Select Register"]
344    #[inline(always)]
345    pub const fn p008pfs_by(
346        &self,
347    ) -> &'static crate::common::Reg<self::P008PfsBy_SPEC, crate::common::RW> {
348        unsafe {
349            crate::common::Reg::<self::P008PfsBy_SPEC, crate::common::RW>::from_ptr(
350                self._svd2pac_as_ptr().add(35usize),
351            )
352        }
353    }
354
355    #[doc = "Port 0%s Pin Function Select Register"]
356    #[inline(always)]
357    pub const fn p0pfs(
358        &self,
359    ) -> &'static crate::common::ClusterRegisterArray<
360        crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW>,
361        3,
362        0x4,
363    > {
364        unsafe {
365            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x34usize))
366        }
367    }
368    #[inline(always)]
369    pub const fn p013pfs(
370        &self,
371    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
372        unsafe {
373            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
374                self._svd2pac_as_ptr().add(0x34usize),
375            )
376        }
377    }
378    #[inline(always)]
379    pub const fn p014pfs(
380        &self,
381    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
382        unsafe {
383            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
384                self._svd2pac_as_ptr().add(0x38usize),
385            )
386        }
387    }
388    #[inline(always)]
389    pub const fn p015pfs(
390        &self,
391    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
392        unsafe {
393            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
394                self._svd2pac_as_ptr().add(0x3cusize),
395            )
396        }
397    }
398
399    #[doc = "Port 0%s Pin Function Select Register"]
400    #[inline(always)]
401    pub const fn p0pfs_ha(
402        &self,
403    ) -> &'static crate::common::ClusterRegisterArray<
404        crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW>,
405        3,
406        0x4,
407    > {
408        unsafe {
409            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x36usize))
410        }
411    }
412    #[inline(always)]
413    pub const fn p013pfs_ha(
414        &self,
415    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
416        unsafe {
417            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
418                self._svd2pac_as_ptr().add(0x36usize),
419            )
420        }
421    }
422    #[inline(always)]
423    pub const fn p014pfs_ha(
424        &self,
425    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
426        unsafe {
427            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
428                self._svd2pac_as_ptr().add(0x3ausize),
429            )
430        }
431    }
432    #[inline(always)]
433    pub const fn p015pfs_ha(
434        &self,
435    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
436        unsafe {
437            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
438                self._svd2pac_as_ptr().add(0x3eusize),
439            )
440        }
441    }
442
443    #[doc = "Port 0%s Pin Function Select Register"]
444    #[inline(always)]
445    pub const fn p0pfs_by(
446        &self,
447    ) -> &'static crate::common::ClusterRegisterArray<
448        crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW>,
449        3,
450        0x4,
451    > {
452        unsafe {
453            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x37usize))
454        }
455    }
456    #[inline(always)]
457    pub const fn p013pfs_by(
458        &self,
459    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
460        unsafe {
461            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
462                self._svd2pac_as_ptr().add(0x37usize),
463            )
464        }
465    }
466    #[inline(always)]
467    pub const fn p014pfs_by(
468        &self,
469    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
470        unsafe {
471            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
472                self._svd2pac_as_ptr().add(0x3busize),
473            )
474        }
475    }
476    #[inline(always)]
477    pub const fn p015pfs_by(
478        &self,
479    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
480        unsafe {
481            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
482                self._svd2pac_as_ptr().add(0x3fusize),
483            )
484        }
485    }
486
487    #[doc = "Port 10%s Pin Function Select Register"]
488    #[inline(always)]
489    pub const fn p10pfs(
490        &self,
491    ) -> &'static crate::common::ClusterRegisterArray<
492        crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW>,
493        10,
494        0x4,
495    > {
496        unsafe {
497            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x40usize))
498        }
499    }
500    #[inline(always)]
501    pub const fn p100pfs(
502        &self,
503    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
504        unsafe {
505            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
506                self._svd2pac_as_ptr().add(0x40usize),
507            )
508        }
509    }
510    #[inline(always)]
511    pub const fn p101pfs(
512        &self,
513    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
514        unsafe {
515            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
516                self._svd2pac_as_ptr().add(0x44usize),
517            )
518        }
519    }
520    #[inline(always)]
521    pub const fn p102pfs(
522        &self,
523    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
524        unsafe {
525            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
526                self._svd2pac_as_ptr().add(0x48usize),
527            )
528        }
529    }
530    #[inline(always)]
531    pub const fn p103pfs(
532        &self,
533    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
534        unsafe {
535            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
536                self._svd2pac_as_ptr().add(0x4cusize),
537            )
538        }
539    }
540    #[inline(always)]
541    pub const fn p104pfs(
542        &self,
543    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
544        unsafe {
545            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
546                self._svd2pac_as_ptr().add(0x50usize),
547            )
548        }
549    }
550    #[inline(always)]
551    pub const fn p105pfs(
552        &self,
553    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
554        unsafe {
555            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
556                self._svd2pac_as_ptr().add(0x54usize),
557            )
558        }
559    }
560    #[inline(always)]
561    pub const fn p106pfs(
562        &self,
563    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
564        unsafe {
565            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
566                self._svd2pac_as_ptr().add(0x58usize),
567            )
568        }
569    }
570    #[inline(always)]
571    pub const fn p107pfs(
572        &self,
573    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
574        unsafe {
575            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
576                self._svd2pac_as_ptr().add(0x5cusize),
577            )
578        }
579    }
580    #[inline(always)]
581    pub const fn p108pfs(
582        &self,
583    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
584        unsafe {
585            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
586                self._svd2pac_as_ptr().add(0x60usize),
587            )
588        }
589    }
590    #[inline(always)]
591    pub const fn p109pfs(
592        &self,
593    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
594        unsafe {
595            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
596                self._svd2pac_as_ptr().add(0x64usize),
597            )
598        }
599    }
600
601    #[doc = "Port 10%s Pin Function Select Register"]
602    #[inline(always)]
603    pub const fn p10pfs_ha(
604        &self,
605    ) -> &'static crate::common::ClusterRegisterArray<
606        crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW>,
607        10,
608        0x4,
609    > {
610        unsafe {
611            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x42usize))
612        }
613    }
614    #[inline(always)]
615    pub const fn p100pfs_ha(
616        &self,
617    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
618        unsafe {
619            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
620                self._svd2pac_as_ptr().add(0x42usize),
621            )
622        }
623    }
624    #[inline(always)]
625    pub const fn p101pfs_ha(
626        &self,
627    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
628        unsafe {
629            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
630                self._svd2pac_as_ptr().add(0x46usize),
631            )
632        }
633    }
634    #[inline(always)]
635    pub const fn p102pfs_ha(
636        &self,
637    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
638        unsafe {
639            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
640                self._svd2pac_as_ptr().add(0x4ausize),
641            )
642        }
643    }
644    #[inline(always)]
645    pub const fn p103pfs_ha(
646        &self,
647    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
648        unsafe {
649            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
650                self._svd2pac_as_ptr().add(0x4eusize),
651            )
652        }
653    }
654    #[inline(always)]
655    pub const fn p104pfs_ha(
656        &self,
657    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
658        unsafe {
659            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
660                self._svd2pac_as_ptr().add(0x52usize),
661            )
662        }
663    }
664    #[inline(always)]
665    pub const fn p105pfs_ha(
666        &self,
667    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
668        unsafe {
669            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
670                self._svd2pac_as_ptr().add(0x56usize),
671            )
672        }
673    }
674    #[inline(always)]
675    pub const fn p106pfs_ha(
676        &self,
677    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
678        unsafe {
679            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
680                self._svd2pac_as_ptr().add(0x5ausize),
681            )
682        }
683    }
684    #[inline(always)]
685    pub const fn p107pfs_ha(
686        &self,
687    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
688        unsafe {
689            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
690                self._svd2pac_as_ptr().add(0x5eusize),
691            )
692        }
693    }
694    #[inline(always)]
695    pub const fn p108pfs_ha(
696        &self,
697    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
698        unsafe {
699            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
700                self._svd2pac_as_ptr().add(0x62usize),
701            )
702        }
703    }
704    #[inline(always)]
705    pub const fn p109pfs_ha(
706        &self,
707    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
708        unsafe {
709            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
710                self._svd2pac_as_ptr().add(0x66usize),
711            )
712        }
713    }
714
715    #[doc = "Port 10%s Pin Function Select Register"]
716    #[inline(always)]
717    pub const fn p10pfs_by(
718        &self,
719    ) -> &'static crate::common::ClusterRegisterArray<
720        crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW>,
721        10,
722        0x4,
723    > {
724        unsafe {
725            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x43usize))
726        }
727    }
728    #[inline(always)]
729    pub const fn p100pfs_by(
730        &self,
731    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
732        unsafe {
733            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
734                self._svd2pac_as_ptr().add(0x43usize),
735            )
736        }
737    }
738    #[inline(always)]
739    pub const fn p101pfs_by(
740        &self,
741    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
742        unsafe {
743            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
744                self._svd2pac_as_ptr().add(0x47usize),
745            )
746        }
747    }
748    #[inline(always)]
749    pub const fn p102pfs_by(
750        &self,
751    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
752        unsafe {
753            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
754                self._svd2pac_as_ptr().add(0x4busize),
755            )
756        }
757    }
758    #[inline(always)]
759    pub const fn p103pfs_by(
760        &self,
761    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
762        unsafe {
763            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
764                self._svd2pac_as_ptr().add(0x4fusize),
765            )
766        }
767    }
768    #[inline(always)]
769    pub const fn p104pfs_by(
770        &self,
771    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
772        unsafe {
773            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
774                self._svd2pac_as_ptr().add(0x53usize),
775            )
776        }
777    }
778    #[inline(always)]
779    pub const fn p105pfs_by(
780        &self,
781    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
782        unsafe {
783            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
784                self._svd2pac_as_ptr().add(0x57usize),
785            )
786        }
787    }
788    #[inline(always)]
789    pub const fn p106pfs_by(
790        &self,
791    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
792        unsafe {
793            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
794                self._svd2pac_as_ptr().add(0x5busize),
795            )
796        }
797    }
798    #[inline(always)]
799    pub const fn p107pfs_by(
800        &self,
801    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
802        unsafe {
803            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
804                self._svd2pac_as_ptr().add(0x5fusize),
805            )
806        }
807    }
808    #[inline(always)]
809    pub const fn p108pfs_by(
810        &self,
811    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
812        unsafe {
813            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
814                self._svd2pac_as_ptr().add(0x63usize),
815            )
816        }
817    }
818    #[inline(always)]
819    pub const fn p109pfs_by(
820        &self,
821    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
822        unsafe {
823            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
824                self._svd2pac_as_ptr().add(0x67usize),
825            )
826        }
827    }
828
829    #[doc = "Port 1%s Pin Function Select Register"]
830    #[inline(always)]
831    pub const fn p1pfs(
832        &self,
833    ) -> &'static crate::common::ClusterRegisterArray<
834        crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW>,
835        6,
836        0x4,
837    > {
838        unsafe {
839            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x68usize))
840        }
841    }
842    #[inline(always)]
843    pub const fn p110pfs(
844        &self,
845    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
846        unsafe {
847            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
848                self._svd2pac_as_ptr().add(0x68usize),
849            )
850        }
851    }
852    #[inline(always)]
853    pub const fn p111pfs(
854        &self,
855    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
856        unsafe {
857            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
858                self._svd2pac_as_ptr().add(0x6cusize),
859            )
860        }
861    }
862    #[inline(always)]
863    pub const fn p112pfs(
864        &self,
865    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
866        unsafe {
867            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
868                self._svd2pac_as_ptr().add(0x70usize),
869            )
870        }
871    }
872    #[inline(always)]
873    pub const fn p113pfs(
874        &self,
875    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
876        unsafe {
877            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
878                self._svd2pac_as_ptr().add(0x74usize),
879            )
880        }
881    }
882    #[inline(always)]
883    pub const fn p114pfs(
884        &self,
885    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
886        unsafe {
887            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
888                self._svd2pac_as_ptr().add(0x78usize),
889            )
890        }
891    }
892    #[inline(always)]
893    pub const fn p115pfs(
894        &self,
895    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
896        unsafe {
897            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
898                self._svd2pac_as_ptr().add(0x7cusize),
899            )
900        }
901    }
902
903    #[doc = "Port 1%s Pin Function Select Register"]
904    #[inline(always)]
905    pub const fn p1pfs_ha(
906        &self,
907    ) -> &'static crate::common::ClusterRegisterArray<
908        crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW>,
909        6,
910        0x4,
911    > {
912        unsafe {
913            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x6ausize))
914        }
915    }
916    #[inline(always)]
917    pub const fn p110pfs_ha(
918        &self,
919    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
920        unsafe {
921            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
922                self._svd2pac_as_ptr().add(0x6ausize),
923            )
924        }
925    }
926    #[inline(always)]
927    pub const fn p111pfs_ha(
928        &self,
929    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
930        unsafe {
931            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
932                self._svd2pac_as_ptr().add(0x6eusize),
933            )
934        }
935    }
936    #[inline(always)]
937    pub const fn p112pfs_ha(
938        &self,
939    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
940        unsafe {
941            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
942                self._svd2pac_as_ptr().add(0x72usize),
943            )
944        }
945    }
946    #[inline(always)]
947    pub const fn p113pfs_ha(
948        &self,
949    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
950        unsafe {
951            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
952                self._svd2pac_as_ptr().add(0x76usize),
953            )
954        }
955    }
956    #[inline(always)]
957    pub const fn p114pfs_ha(
958        &self,
959    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
960        unsafe {
961            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
962                self._svd2pac_as_ptr().add(0x7ausize),
963            )
964        }
965    }
966    #[inline(always)]
967    pub const fn p115pfs_ha(
968        &self,
969    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
970        unsafe {
971            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
972                self._svd2pac_as_ptr().add(0x7eusize),
973            )
974        }
975    }
976
977    #[doc = "Port 1%s Pin Function Select Register"]
978    #[inline(always)]
979    pub const fn p1pfs_by(
980        &self,
981    ) -> &'static crate::common::ClusterRegisterArray<
982        crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW>,
983        6,
984        0x4,
985    > {
986        unsafe {
987            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x6busize))
988        }
989    }
990    #[inline(always)]
991    pub const fn p110pfs_by(
992        &self,
993    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
994        unsafe {
995            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
996                self._svd2pac_as_ptr().add(0x6busize),
997            )
998        }
999    }
1000    #[inline(always)]
1001    pub const fn p111pfs_by(
1002        &self,
1003    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1004        unsafe {
1005            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1006                self._svd2pac_as_ptr().add(0x6fusize),
1007            )
1008        }
1009    }
1010    #[inline(always)]
1011    pub const fn p112pfs_by(
1012        &self,
1013    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1014        unsafe {
1015            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1016                self._svd2pac_as_ptr().add(0x73usize),
1017            )
1018        }
1019    }
1020    #[inline(always)]
1021    pub const fn p113pfs_by(
1022        &self,
1023    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1024        unsafe {
1025            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1026                self._svd2pac_as_ptr().add(0x77usize),
1027            )
1028        }
1029    }
1030    #[inline(always)]
1031    pub const fn p114pfs_by(
1032        &self,
1033    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1034        unsafe {
1035            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1036                self._svd2pac_as_ptr().add(0x7busize),
1037            )
1038        }
1039    }
1040    #[inline(always)]
1041    pub const fn p115pfs_by(
1042        &self,
1043    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
1044        unsafe {
1045            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
1046                self._svd2pac_as_ptr().add(0x7fusize),
1047            )
1048        }
1049    }
1050
1051    #[doc = "Port 200 Pin Function Select Register"]
1052    #[inline(always)]
1053    pub const fn p200pfs(
1054        &self,
1055    ) -> &'static crate::common::Reg<self::P200Pfs_SPEC, crate::common::RW> {
1056        unsafe {
1057            crate::common::Reg::<self::P200Pfs_SPEC, crate::common::RW>::from_ptr(
1058                self._svd2pac_as_ptr().add(128usize),
1059            )
1060        }
1061    }
1062
1063    #[doc = "Port 200 Pin Function Select Register"]
1064    #[inline(always)]
1065    pub const fn p200pfs_ha(
1066        &self,
1067    ) -> &'static crate::common::Reg<self::P200PfsHa_SPEC, crate::common::RW> {
1068        unsafe {
1069            crate::common::Reg::<self::P200PfsHa_SPEC, crate::common::RW>::from_ptr(
1070                self._svd2pac_as_ptr().add(130usize),
1071            )
1072        }
1073    }
1074
1075    #[doc = "Port 200 Pin Function Select Register"]
1076    #[inline(always)]
1077    pub const fn p200pfs_by(
1078        &self,
1079    ) -> &'static crate::common::Reg<self::P200PfsBy_SPEC, crate::common::RW> {
1080        unsafe {
1081            crate::common::Reg::<self::P200PfsBy_SPEC, crate::common::RW>::from_ptr(
1082                self._svd2pac_as_ptr().add(131usize),
1083            )
1084        }
1085    }
1086
1087    #[doc = "Port 201 Pin Function Select Register"]
1088    #[inline(always)]
1089    pub const fn p201pfs(
1090        &self,
1091    ) -> &'static crate::common::Reg<self::P201Pfs_SPEC, crate::common::RW> {
1092        unsafe {
1093            crate::common::Reg::<self::P201Pfs_SPEC, crate::common::RW>::from_ptr(
1094                self._svd2pac_as_ptr().add(132usize),
1095            )
1096        }
1097    }
1098
1099    #[doc = "Port 201 Pin Function Select Register"]
1100    #[inline(always)]
1101    pub const fn p201pfs_ha(
1102        &self,
1103    ) -> &'static crate::common::Reg<self::P201PfsHa_SPEC, crate::common::RW> {
1104        unsafe {
1105            crate::common::Reg::<self::P201PfsHa_SPEC, crate::common::RW>::from_ptr(
1106                self._svd2pac_as_ptr().add(134usize),
1107            )
1108        }
1109    }
1110
1111    #[doc = "Port 201 Pin Function Select Register"]
1112    #[inline(always)]
1113    pub const fn p201pfs_by(
1114        &self,
1115    ) -> &'static crate::common::Reg<self::P201PfsBy_SPEC, crate::common::RW> {
1116        unsafe {
1117            crate::common::Reg::<self::P201PfsBy_SPEC, crate::common::RW>::from_ptr(
1118                self._svd2pac_as_ptr().add(135usize),
1119            )
1120        }
1121    }
1122
1123    #[doc = "Port 20%s Pin Function Select Register"]
1124    #[inline(always)]
1125    pub const fn p20pfs(
1126        &self,
1127    ) -> &'static crate::common::ClusterRegisterArray<
1128        crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW>,
1129        5,
1130        0x4,
1131    > {
1132        unsafe {
1133            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x94usize))
1134        }
1135    }
1136    #[inline(always)]
1137    pub const fn p205pfs(
1138        &self,
1139    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1140        unsafe {
1141            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1142                self._svd2pac_as_ptr().add(0x94usize),
1143            )
1144        }
1145    }
1146    #[inline(always)]
1147    pub const fn p206pfs(
1148        &self,
1149    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1150        unsafe {
1151            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1152                self._svd2pac_as_ptr().add(0x98usize),
1153            )
1154        }
1155    }
1156    #[inline(always)]
1157    pub const fn p207pfs(
1158        &self,
1159    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1160        unsafe {
1161            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1162                self._svd2pac_as_ptr().add(0x9cusize),
1163            )
1164        }
1165    }
1166    #[inline(always)]
1167    pub const fn p208pfs(
1168        &self,
1169    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1170        unsafe {
1171            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1172                self._svd2pac_as_ptr().add(0xa0usize),
1173            )
1174        }
1175    }
1176    #[inline(always)]
1177    pub const fn p209pfs(
1178        &self,
1179    ) -> &'static crate::common::Reg<self::P20Pfs_SPEC, crate::common::RW> {
1180        unsafe {
1181            crate::common::Reg::<self::P20Pfs_SPEC, crate::common::RW>::from_ptr(
1182                self._svd2pac_as_ptr().add(0xa4usize),
1183            )
1184        }
1185    }
1186
1187    #[doc = "Port 20%s Pin Function Select Register"]
1188    #[inline(always)]
1189    pub const fn p20pfs_ha(
1190        &self,
1191    ) -> &'static crate::common::ClusterRegisterArray<
1192        crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW>,
1193        5,
1194        0x4,
1195    > {
1196        unsafe {
1197            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x96usize))
1198        }
1199    }
1200    #[inline(always)]
1201    pub const fn p205pfs_ha(
1202        &self,
1203    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1204        unsafe {
1205            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1206                self._svd2pac_as_ptr().add(0x96usize),
1207            )
1208        }
1209    }
1210    #[inline(always)]
1211    pub const fn p206pfs_ha(
1212        &self,
1213    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1214        unsafe {
1215            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1216                self._svd2pac_as_ptr().add(0x9ausize),
1217            )
1218        }
1219    }
1220    #[inline(always)]
1221    pub const fn p207pfs_ha(
1222        &self,
1223    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1224        unsafe {
1225            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1226                self._svd2pac_as_ptr().add(0x9eusize),
1227            )
1228        }
1229    }
1230    #[inline(always)]
1231    pub const fn p208pfs_ha(
1232        &self,
1233    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1234        unsafe {
1235            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1236                self._svd2pac_as_ptr().add(0xa2usize),
1237            )
1238        }
1239    }
1240    #[inline(always)]
1241    pub const fn p209pfs_ha(
1242        &self,
1243    ) -> &'static crate::common::Reg<self::P20PfsHa_SPEC, crate::common::RW> {
1244        unsafe {
1245            crate::common::Reg::<self::P20PfsHa_SPEC, crate::common::RW>::from_ptr(
1246                self._svd2pac_as_ptr().add(0xa6usize),
1247            )
1248        }
1249    }
1250
1251    #[doc = "Port 20%s Pin Function Select Register"]
1252    #[inline(always)]
1253    pub const fn p20pfs_by(
1254        &self,
1255    ) -> &'static crate::common::ClusterRegisterArray<
1256        crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW>,
1257        5,
1258        0x4,
1259    > {
1260        unsafe {
1261            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x97usize))
1262        }
1263    }
1264    #[inline(always)]
1265    pub const fn p205pfs_by(
1266        &self,
1267    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1268        unsafe {
1269            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1270                self._svd2pac_as_ptr().add(0x97usize),
1271            )
1272        }
1273    }
1274    #[inline(always)]
1275    pub const fn p206pfs_by(
1276        &self,
1277    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1278        unsafe {
1279            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1280                self._svd2pac_as_ptr().add(0x9busize),
1281            )
1282        }
1283    }
1284    #[inline(always)]
1285    pub const fn p207pfs_by(
1286        &self,
1287    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1288        unsafe {
1289            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1290                self._svd2pac_as_ptr().add(0x9fusize),
1291            )
1292        }
1293    }
1294    #[inline(always)]
1295    pub const fn p208pfs_by(
1296        &self,
1297    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1298        unsafe {
1299            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1300                self._svd2pac_as_ptr().add(0xa3usize),
1301            )
1302        }
1303    }
1304    #[inline(always)]
1305    pub const fn p209pfs_by(
1306        &self,
1307    ) -> &'static crate::common::Reg<self::P20PfsBy_SPEC, crate::common::RW> {
1308        unsafe {
1309            crate::common::Reg::<self::P20PfsBy_SPEC, crate::common::RW>::from_ptr(
1310                self._svd2pac_as_ptr().add(0xa7usize),
1311            )
1312        }
1313    }
1314
1315    #[doc = "Port 2%s Pin Function Select Register"]
1316    #[inline(always)]
1317    pub const fn p2pfs(
1318        &self,
1319    ) -> &'static crate::common::ClusterRegisterArray<
1320        crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW>,
1321        5,
1322        0x4,
1323    > {
1324        unsafe {
1325            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xa8usize))
1326        }
1327    }
1328    #[inline(always)]
1329    pub const fn p210pfs(
1330        &self,
1331    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1332        unsafe {
1333            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1334                self._svd2pac_as_ptr().add(0xa8usize),
1335            )
1336        }
1337    }
1338    #[inline(always)]
1339    pub const fn p211pfs(
1340        &self,
1341    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1342        unsafe {
1343            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1344                self._svd2pac_as_ptr().add(0xacusize),
1345            )
1346        }
1347    }
1348    #[inline(always)]
1349    pub const fn p212pfs(
1350        &self,
1351    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1352        unsafe {
1353            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1354                self._svd2pac_as_ptr().add(0xb0usize),
1355            )
1356        }
1357    }
1358    #[inline(always)]
1359    pub const fn p213pfs(
1360        &self,
1361    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1362        unsafe {
1363            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1364                self._svd2pac_as_ptr().add(0xb4usize),
1365            )
1366        }
1367    }
1368    #[inline(always)]
1369    pub const fn p214pfs(
1370        &self,
1371    ) -> &'static crate::common::Reg<self::P2Pfs_SPEC, crate::common::RW> {
1372        unsafe {
1373            crate::common::Reg::<self::P2Pfs_SPEC, crate::common::RW>::from_ptr(
1374                self._svd2pac_as_ptr().add(0xb8usize),
1375            )
1376        }
1377    }
1378
1379    #[doc = "Port 2%s Pin Function Select Register"]
1380    #[inline(always)]
1381    pub const fn p2pfs_ha(
1382        &self,
1383    ) -> &'static crate::common::ClusterRegisterArray<
1384        crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW>,
1385        5,
1386        0x4,
1387    > {
1388        unsafe {
1389            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xaausize))
1390        }
1391    }
1392    #[inline(always)]
1393    pub const fn p210pfs_ha(
1394        &self,
1395    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1396        unsafe {
1397            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1398                self._svd2pac_as_ptr().add(0xaausize),
1399            )
1400        }
1401    }
1402    #[inline(always)]
1403    pub const fn p211pfs_ha(
1404        &self,
1405    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1406        unsafe {
1407            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1408                self._svd2pac_as_ptr().add(0xaeusize),
1409            )
1410        }
1411    }
1412    #[inline(always)]
1413    pub const fn p212pfs_ha(
1414        &self,
1415    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1416        unsafe {
1417            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1418                self._svd2pac_as_ptr().add(0xb2usize),
1419            )
1420        }
1421    }
1422    #[inline(always)]
1423    pub const fn p213pfs_ha(
1424        &self,
1425    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1426        unsafe {
1427            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1428                self._svd2pac_as_ptr().add(0xb6usize),
1429            )
1430        }
1431    }
1432    #[inline(always)]
1433    pub const fn p214pfs_ha(
1434        &self,
1435    ) -> &'static crate::common::Reg<self::P2PfsHa_SPEC, crate::common::RW> {
1436        unsafe {
1437            crate::common::Reg::<self::P2PfsHa_SPEC, crate::common::RW>::from_ptr(
1438                self._svd2pac_as_ptr().add(0xbausize),
1439            )
1440        }
1441    }
1442
1443    #[doc = "Port 2%s Pin Function Select Register"]
1444    #[inline(always)]
1445    pub const fn p2pfs_by(
1446        &self,
1447    ) -> &'static crate::common::ClusterRegisterArray<
1448        crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW>,
1449        5,
1450        0x4,
1451    > {
1452        unsafe {
1453            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xabusize))
1454        }
1455    }
1456    #[inline(always)]
1457    pub const fn p210pfs_by(
1458        &self,
1459    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1460        unsafe {
1461            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1462                self._svd2pac_as_ptr().add(0xabusize),
1463            )
1464        }
1465    }
1466    #[inline(always)]
1467    pub const fn p211pfs_by(
1468        &self,
1469    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1470        unsafe {
1471            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1472                self._svd2pac_as_ptr().add(0xafusize),
1473            )
1474        }
1475    }
1476    #[inline(always)]
1477    pub const fn p212pfs_by(
1478        &self,
1479    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1480        unsafe {
1481            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1482                self._svd2pac_as_ptr().add(0xb3usize),
1483            )
1484        }
1485    }
1486    #[inline(always)]
1487    pub const fn p213pfs_by(
1488        &self,
1489    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1490        unsafe {
1491            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1492                self._svd2pac_as_ptr().add(0xb7usize),
1493            )
1494        }
1495    }
1496    #[inline(always)]
1497    pub const fn p214pfs_by(
1498        &self,
1499    ) -> &'static crate::common::Reg<self::P2PfsBy_SPEC, crate::common::RW> {
1500        unsafe {
1501            crate::common::Reg::<self::P2PfsBy_SPEC, crate::common::RW>::from_ptr(
1502                self._svd2pac_as_ptr().add(0xbbusize),
1503            )
1504        }
1505    }
1506
1507    #[doc = "Port 300 Pin Function Select Register"]
1508    #[inline(always)]
1509    pub const fn p300pfs(
1510        &self,
1511    ) -> &'static crate::common::Reg<self::P300Pfs_SPEC, crate::common::RW> {
1512        unsafe {
1513            crate::common::Reg::<self::P300Pfs_SPEC, crate::common::RW>::from_ptr(
1514                self._svd2pac_as_ptr().add(192usize),
1515            )
1516        }
1517    }
1518
1519    #[doc = "Port 300 Pin Function Select Register"]
1520    #[inline(always)]
1521    pub const fn p300pfs_ha(
1522        &self,
1523    ) -> &'static crate::common::Reg<self::P300PfsHa_SPEC, crate::common::RW> {
1524        unsafe {
1525            crate::common::Reg::<self::P300PfsHa_SPEC, crate::common::RW>::from_ptr(
1526                self._svd2pac_as_ptr().add(194usize),
1527            )
1528        }
1529    }
1530
1531    #[doc = "Port 300 Pin Function Select Register"]
1532    #[inline(always)]
1533    pub const fn p300pfs_by(
1534        &self,
1535    ) -> &'static crate::common::Reg<self::P300PfsBy_SPEC, crate::common::RW> {
1536        unsafe {
1537            crate::common::Reg::<self::P300PfsBy_SPEC, crate::common::RW>::from_ptr(
1538                self._svd2pac_as_ptr().add(195usize),
1539            )
1540        }
1541    }
1542
1543    #[doc = "Port 30%s Pin Function Select Register"]
1544    #[inline(always)]
1545    pub const fn p30pfs(
1546        &self,
1547    ) -> &'static crate::common::ClusterRegisterArray<
1548        crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW>,
1549        7,
1550        0x4,
1551    > {
1552        unsafe {
1553            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xc4usize))
1554        }
1555    }
1556    #[inline(always)]
1557    pub const fn p301pfs(
1558        &self,
1559    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1560        unsafe {
1561            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1562                self._svd2pac_as_ptr().add(0xc4usize),
1563            )
1564        }
1565    }
1566    #[inline(always)]
1567    pub const fn p302pfs(
1568        &self,
1569    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1570        unsafe {
1571            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1572                self._svd2pac_as_ptr().add(0xc8usize),
1573            )
1574        }
1575    }
1576    #[inline(always)]
1577    pub const fn p303pfs(
1578        &self,
1579    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1580        unsafe {
1581            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1582                self._svd2pac_as_ptr().add(0xccusize),
1583            )
1584        }
1585    }
1586    #[inline(always)]
1587    pub const fn p304pfs(
1588        &self,
1589    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1590        unsafe {
1591            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1592                self._svd2pac_as_ptr().add(0xd0usize),
1593            )
1594        }
1595    }
1596    #[inline(always)]
1597    pub const fn p305pfs(
1598        &self,
1599    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1600        unsafe {
1601            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1602                self._svd2pac_as_ptr().add(0xd4usize),
1603            )
1604        }
1605    }
1606    #[inline(always)]
1607    pub const fn p306pfs(
1608        &self,
1609    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1610        unsafe {
1611            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1612                self._svd2pac_as_ptr().add(0xd8usize),
1613            )
1614        }
1615    }
1616    #[inline(always)]
1617    pub const fn p307pfs(
1618        &self,
1619    ) -> &'static crate::common::Reg<self::P30Pfs_SPEC, crate::common::RW> {
1620        unsafe {
1621            crate::common::Reg::<self::P30Pfs_SPEC, crate::common::RW>::from_ptr(
1622                self._svd2pac_as_ptr().add(0xdcusize),
1623            )
1624        }
1625    }
1626
1627    #[doc = "Port 30%s Pin Function Select Register"]
1628    #[inline(always)]
1629    pub const fn p30pfs_ha(
1630        &self,
1631    ) -> &'static crate::common::ClusterRegisterArray<
1632        crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW>,
1633        7,
1634        0x4,
1635    > {
1636        unsafe {
1637            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xc6usize))
1638        }
1639    }
1640    #[inline(always)]
1641    pub const fn p301pfs_ha(
1642        &self,
1643    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1644        unsafe {
1645            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1646                self._svd2pac_as_ptr().add(0xc6usize),
1647            )
1648        }
1649    }
1650    #[inline(always)]
1651    pub const fn p302pfs_ha(
1652        &self,
1653    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1654        unsafe {
1655            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1656                self._svd2pac_as_ptr().add(0xcausize),
1657            )
1658        }
1659    }
1660    #[inline(always)]
1661    pub const fn p303pfs_ha(
1662        &self,
1663    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1664        unsafe {
1665            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1666                self._svd2pac_as_ptr().add(0xceusize),
1667            )
1668        }
1669    }
1670    #[inline(always)]
1671    pub const fn p304pfs_ha(
1672        &self,
1673    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1674        unsafe {
1675            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1676                self._svd2pac_as_ptr().add(0xd2usize),
1677            )
1678        }
1679    }
1680    #[inline(always)]
1681    pub const fn p305pfs_ha(
1682        &self,
1683    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1684        unsafe {
1685            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1686                self._svd2pac_as_ptr().add(0xd6usize),
1687            )
1688        }
1689    }
1690    #[inline(always)]
1691    pub const fn p306pfs_ha(
1692        &self,
1693    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1694        unsafe {
1695            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1696                self._svd2pac_as_ptr().add(0xdausize),
1697            )
1698        }
1699    }
1700    #[inline(always)]
1701    pub const fn p307pfs_ha(
1702        &self,
1703    ) -> &'static crate::common::Reg<self::P30PfsHa_SPEC, crate::common::RW> {
1704        unsafe {
1705            crate::common::Reg::<self::P30PfsHa_SPEC, crate::common::RW>::from_ptr(
1706                self._svd2pac_as_ptr().add(0xdeusize),
1707            )
1708        }
1709    }
1710
1711    #[doc = "Port 30%s Pin Function Select Register"]
1712    #[inline(always)]
1713    pub const fn p30pfs_by(
1714        &self,
1715    ) -> &'static crate::common::ClusterRegisterArray<
1716        crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW>,
1717        7,
1718        0x4,
1719    > {
1720        unsafe {
1721            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0xc7usize))
1722        }
1723    }
1724    #[inline(always)]
1725    pub const fn p301pfs_by(
1726        &self,
1727    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1728        unsafe {
1729            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1730                self._svd2pac_as_ptr().add(0xc7usize),
1731            )
1732        }
1733    }
1734    #[inline(always)]
1735    pub const fn p302pfs_by(
1736        &self,
1737    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1738        unsafe {
1739            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1740                self._svd2pac_as_ptr().add(0xcbusize),
1741            )
1742        }
1743    }
1744    #[inline(always)]
1745    pub const fn p303pfs_by(
1746        &self,
1747    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1748        unsafe {
1749            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1750                self._svd2pac_as_ptr().add(0xcfusize),
1751            )
1752        }
1753    }
1754    #[inline(always)]
1755    pub const fn p304pfs_by(
1756        &self,
1757    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1758        unsafe {
1759            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1760                self._svd2pac_as_ptr().add(0xd3usize),
1761            )
1762        }
1763    }
1764    #[inline(always)]
1765    pub const fn p305pfs_by(
1766        &self,
1767    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1768        unsafe {
1769            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1770                self._svd2pac_as_ptr().add(0xd7usize),
1771            )
1772        }
1773    }
1774    #[inline(always)]
1775    pub const fn p306pfs_by(
1776        &self,
1777    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1778        unsafe {
1779            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1780                self._svd2pac_as_ptr().add(0xdbusize),
1781            )
1782        }
1783    }
1784    #[inline(always)]
1785    pub const fn p307pfs_by(
1786        &self,
1787    ) -> &'static crate::common::Reg<self::P30PfsBy_SPEC, crate::common::RW> {
1788        unsafe {
1789            crate::common::Reg::<self::P30PfsBy_SPEC, crate::common::RW>::from_ptr(
1790                self._svd2pac_as_ptr().add(0xdfusize),
1791            )
1792        }
1793    }
1794
1795    #[doc = "Port 40%s Pin Function Select Register"]
1796    #[inline(always)]
1797    pub const fn p40pfs(
1798        &self,
1799    ) -> &'static crate::common::ClusterRegisterArray<
1800        crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW>,
1801        10,
1802        0x4,
1803    > {
1804        unsafe {
1805            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x100usize))
1806        }
1807    }
1808    #[inline(always)]
1809    pub const fn p400pfs(
1810        &self,
1811    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1812        unsafe {
1813            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1814                self._svd2pac_as_ptr().add(0x100usize),
1815            )
1816        }
1817    }
1818    #[inline(always)]
1819    pub const fn p401pfs(
1820        &self,
1821    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1822        unsafe {
1823            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1824                self._svd2pac_as_ptr().add(0x104usize),
1825            )
1826        }
1827    }
1828    #[inline(always)]
1829    pub const fn p402pfs(
1830        &self,
1831    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1832        unsafe {
1833            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1834                self._svd2pac_as_ptr().add(0x108usize),
1835            )
1836        }
1837    }
1838    #[inline(always)]
1839    pub const fn p403pfs(
1840        &self,
1841    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1842        unsafe {
1843            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1844                self._svd2pac_as_ptr().add(0x10cusize),
1845            )
1846        }
1847    }
1848    #[inline(always)]
1849    pub const fn p404pfs(
1850        &self,
1851    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1852        unsafe {
1853            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1854                self._svd2pac_as_ptr().add(0x110usize),
1855            )
1856        }
1857    }
1858    #[inline(always)]
1859    pub const fn p405pfs(
1860        &self,
1861    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1862        unsafe {
1863            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1864                self._svd2pac_as_ptr().add(0x114usize),
1865            )
1866        }
1867    }
1868    #[inline(always)]
1869    pub const fn p406pfs(
1870        &self,
1871    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1872        unsafe {
1873            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1874                self._svd2pac_as_ptr().add(0x118usize),
1875            )
1876        }
1877    }
1878    #[inline(always)]
1879    pub const fn p407pfs(
1880        &self,
1881    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1882        unsafe {
1883            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1884                self._svd2pac_as_ptr().add(0x11cusize),
1885            )
1886        }
1887    }
1888    #[inline(always)]
1889    pub const fn p408pfs(
1890        &self,
1891    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1892        unsafe {
1893            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1894                self._svd2pac_as_ptr().add(0x120usize),
1895            )
1896        }
1897    }
1898    #[inline(always)]
1899    pub const fn p409pfs(
1900        &self,
1901    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
1902        unsafe {
1903            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
1904                self._svd2pac_as_ptr().add(0x124usize),
1905            )
1906        }
1907    }
1908
1909    #[doc = "Port 40%s Pin Function Select Register"]
1910    #[inline(always)]
1911    pub const fn p40pfs_ha(
1912        &self,
1913    ) -> &'static crate::common::ClusterRegisterArray<
1914        crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW>,
1915        10,
1916        0x4,
1917    > {
1918        unsafe {
1919            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x102usize))
1920        }
1921    }
1922    #[inline(always)]
1923    pub const fn p400pfs_ha(
1924        &self,
1925    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
1926        unsafe {
1927            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
1928                self._svd2pac_as_ptr().add(0x102usize),
1929            )
1930        }
1931    }
1932    #[inline(always)]
1933    pub const fn p401pfs_ha(
1934        &self,
1935    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
1936        unsafe {
1937            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
1938                self._svd2pac_as_ptr().add(0x106usize),
1939            )
1940        }
1941    }
1942    #[inline(always)]
1943    pub const fn p402pfs_ha(
1944        &self,
1945    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
1946        unsafe {
1947            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
1948                self._svd2pac_as_ptr().add(0x10ausize),
1949            )
1950        }
1951    }
1952    #[inline(always)]
1953    pub const fn p403pfs_ha(
1954        &self,
1955    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
1956        unsafe {
1957            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
1958                self._svd2pac_as_ptr().add(0x10eusize),
1959            )
1960        }
1961    }
1962    #[inline(always)]
1963    pub const fn p404pfs_ha(
1964        &self,
1965    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
1966        unsafe {
1967            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
1968                self._svd2pac_as_ptr().add(0x112usize),
1969            )
1970        }
1971    }
1972    #[inline(always)]
1973    pub const fn p405pfs_ha(
1974        &self,
1975    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
1976        unsafe {
1977            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
1978                self._svd2pac_as_ptr().add(0x116usize),
1979            )
1980        }
1981    }
1982    #[inline(always)]
1983    pub const fn p406pfs_ha(
1984        &self,
1985    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
1986        unsafe {
1987            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
1988                self._svd2pac_as_ptr().add(0x11ausize),
1989            )
1990        }
1991    }
1992    #[inline(always)]
1993    pub const fn p407pfs_ha(
1994        &self,
1995    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
1996        unsafe {
1997            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
1998                self._svd2pac_as_ptr().add(0x11eusize),
1999            )
2000        }
2001    }
2002    #[inline(always)]
2003    pub const fn p408pfs_ha(
2004        &self,
2005    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2006        unsafe {
2007            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2008                self._svd2pac_as_ptr().add(0x122usize),
2009            )
2010        }
2011    }
2012    #[inline(always)]
2013    pub const fn p409pfs_ha(
2014        &self,
2015    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
2016        unsafe {
2017            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
2018                self._svd2pac_as_ptr().add(0x126usize),
2019            )
2020        }
2021    }
2022
2023    #[doc = "Port 40%s Pin Function Select Register"]
2024    #[inline(always)]
2025    pub const fn p40pfs_by(
2026        &self,
2027    ) -> &'static crate::common::ClusterRegisterArray<
2028        crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW>,
2029        10,
2030        0x4,
2031    > {
2032        unsafe {
2033            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x103usize))
2034        }
2035    }
2036    #[inline(always)]
2037    pub const fn p400pfs_by(
2038        &self,
2039    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2040        unsafe {
2041            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2042                self._svd2pac_as_ptr().add(0x103usize),
2043            )
2044        }
2045    }
2046    #[inline(always)]
2047    pub const fn p401pfs_by(
2048        &self,
2049    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2050        unsafe {
2051            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2052                self._svd2pac_as_ptr().add(0x107usize),
2053            )
2054        }
2055    }
2056    #[inline(always)]
2057    pub const fn p402pfs_by(
2058        &self,
2059    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2060        unsafe {
2061            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2062                self._svd2pac_as_ptr().add(0x10busize),
2063            )
2064        }
2065    }
2066    #[inline(always)]
2067    pub const fn p403pfs_by(
2068        &self,
2069    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2070        unsafe {
2071            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2072                self._svd2pac_as_ptr().add(0x10fusize),
2073            )
2074        }
2075    }
2076    #[inline(always)]
2077    pub const fn p404pfs_by(
2078        &self,
2079    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2080        unsafe {
2081            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2082                self._svd2pac_as_ptr().add(0x113usize),
2083            )
2084        }
2085    }
2086    #[inline(always)]
2087    pub const fn p405pfs_by(
2088        &self,
2089    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2090        unsafe {
2091            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2092                self._svd2pac_as_ptr().add(0x117usize),
2093            )
2094        }
2095    }
2096    #[inline(always)]
2097    pub const fn p406pfs_by(
2098        &self,
2099    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2100        unsafe {
2101            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2102                self._svd2pac_as_ptr().add(0x11busize),
2103            )
2104        }
2105    }
2106    #[inline(always)]
2107    pub const fn p407pfs_by(
2108        &self,
2109    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2110        unsafe {
2111            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2112                self._svd2pac_as_ptr().add(0x11fusize),
2113            )
2114        }
2115    }
2116    #[inline(always)]
2117    pub const fn p408pfs_by(
2118        &self,
2119    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2120        unsafe {
2121            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2122                self._svd2pac_as_ptr().add(0x123usize),
2123            )
2124        }
2125    }
2126    #[inline(always)]
2127    pub const fn p409pfs_by(
2128        &self,
2129    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
2130        unsafe {
2131            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
2132                self._svd2pac_as_ptr().add(0x127usize),
2133            )
2134        }
2135    }
2136
2137    #[doc = "Port 4%s Pin Function Select Register"]
2138    #[inline(always)]
2139    pub const fn p4pfs(
2140        &self,
2141    ) -> &'static crate::common::ClusterRegisterArray<
2142        crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW>,
2143        6,
2144        0x4,
2145    > {
2146        unsafe {
2147            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x128usize))
2148        }
2149    }
2150    #[inline(always)]
2151    pub const fn p410pfs(
2152        &self,
2153    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2154        unsafe {
2155            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2156                self._svd2pac_as_ptr().add(0x128usize),
2157            )
2158        }
2159    }
2160    #[inline(always)]
2161    pub const fn p411pfs(
2162        &self,
2163    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2164        unsafe {
2165            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2166                self._svd2pac_as_ptr().add(0x12cusize),
2167            )
2168        }
2169    }
2170    #[inline(always)]
2171    pub const fn p412pfs(
2172        &self,
2173    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2174        unsafe {
2175            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2176                self._svd2pac_as_ptr().add(0x130usize),
2177            )
2178        }
2179    }
2180    #[inline(always)]
2181    pub const fn p413pfs(
2182        &self,
2183    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2184        unsafe {
2185            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2186                self._svd2pac_as_ptr().add(0x134usize),
2187            )
2188        }
2189    }
2190    #[inline(always)]
2191    pub const fn p414pfs(
2192        &self,
2193    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2194        unsafe {
2195            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2196                self._svd2pac_as_ptr().add(0x138usize),
2197            )
2198        }
2199    }
2200    #[inline(always)]
2201    pub const fn p415pfs(
2202        &self,
2203    ) -> &'static crate::common::Reg<self::P4Pfs_SPEC, crate::common::RW> {
2204        unsafe {
2205            crate::common::Reg::<self::P4Pfs_SPEC, crate::common::RW>::from_ptr(
2206                self._svd2pac_as_ptr().add(0x13cusize),
2207            )
2208        }
2209    }
2210
2211    #[doc = "Port 4%s Pin Function Select Register"]
2212    #[inline(always)]
2213    pub const fn p4pfs_ha(
2214        &self,
2215    ) -> &'static crate::common::ClusterRegisterArray<
2216        crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW>,
2217        6,
2218        0x4,
2219    > {
2220        unsafe {
2221            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x12ausize))
2222        }
2223    }
2224    #[inline(always)]
2225    pub const fn p410pfs_ha(
2226        &self,
2227    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2228        unsafe {
2229            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2230                self._svd2pac_as_ptr().add(0x12ausize),
2231            )
2232        }
2233    }
2234    #[inline(always)]
2235    pub const fn p411pfs_ha(
2236        &self,
2237    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2238        unsafe {
2239            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2240                self._svd2pac_as_ptr().add(0x12eusize),
2241            )
2242        }
2243    }
2244    #[inline(always)]
2245    pub const fn p412pfs_ha(
2246        &self,
2247    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2248        unsafe {
2249            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2250                self._svd2pac_as_ptr().add(0x132usize),
2251            )
2252        }
2253    }
2254    #[inline(always)]
2255    pub const fn p413pfs_ha(
2256        &self,
2257    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2258        unsafe {
2259            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2260                self._svd2pac_as_ptr().add(0x136usize),
2261            )
2262        }
2263    }
2264    #[inline(always)]
2265    pub const fn p414pfs_ha(
2266        &self,
2267    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2268        unsafe {
2269            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2270                self._svd2pac_as_ptr().add(0x13ausize),
2271            )
2272        }
2273    }
2274    #[inline(always)]
2275    pub const fn p415pfs_ha(
2276        &self,
2277    ) -> &'static crate::common::Reg<self::P4PfsHa_SPEC, crate::common::RW> {
2278        unsafe {
2279            crate::common::Reg::<self::P4PfsHa_SPEC, crate::common::RW>::from_ptr(
2280                self._svd2pac_as_ptr().add(0x13eusize),
2281            )
2282        }
2283    }
2284
2285    #[doc = "Port 4%s Pin Function Select Register"]
2286    #[inline(always)]
2287    pub const fn p4pfs_by(
2288        &self,
2289    ) -> &'static crate::common::ClusterRegisterArray<
2290        crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW>,
2291        6,
2292        0x4,
2293    > {
2294        unsafe {
2295            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x12busize))
2296        }
2297    }
2298    #[inline(always)]
2299    pub const fn p410pfs_by(
2300        &self,
2301    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2302        unsafe {
2303            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2304                self._svd2pac_as_ptr().add(0x12busize),
2305            )
2306        }
2307    }
2308    #[inline(always)]
2309    pub const fn p411pfs_by(
2310        &self,
2311    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2312        unsafe {
2313            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2314                self._svd2pac_as_ptr().add(0x12fusize),
2315            )
2316        }
2317    }
2318    #[inline(always)]
2319    pub const fn p412pfs_by(
2320        &self,
2321    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2322        unsafe {
2323            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2324                self._svd2pac_as_ptr().add(0x133usize),
2325            )
2326        }
2327    }
2328    #[inline(always)]
2329    pub const fn p413pfs_by(
2330        &self,
2331    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2332        unsafe {
2333            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2334                self._svd2pac_as_ptr().add(0x137usize),
2335            )
2336        }
2337    }
2338    #[inline(always)]
2339    pub const fn p414pfs_by(
2340        &self,
2341    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2342        unsafe {
2343            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2344                self._svd2pac_as_ptr().add(0x13busize),
2345            )
2346        }
2347    }
2348    #[inline(always)]
2349    pub const fn p415pfs_by(
2350        &self,
2351    ) -> &'static crate::common::Reg<self::P4PfsBy_SPEC, crate::common::RW> {
2352        unsafe {
2353            crate::common::Reg::<self::P4PfsBy_SPEC, crate::common::RW>::from_ptr(
2354                self._svd2pac_as_ptr().add(0x13fusize),
2355            )
2356        }
2357    }
2358
2359    #[doc = "Port 50%s Pin Function Select Register"]
2360    #[inline(always)]
2361    pub const fn p50pfs(
2362        &self,
2363    ) -> &'static crate::common::ClusterRegisterArray<
2364        crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW>,
2365        6,
2366        0x4,
2367    > {
2368        unsafe {
2369            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x140usize))
2370        }
2371    }
2372    #[inline(always)]
2373    pub const fn p500pfs(
2374        &self,
2375    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2376        unsafe {
2377            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2378                self._svd2pac_as_ptr().add(0x140usize),
2379            )
2380        }
2381    }
2382    #[inline(always)]
2383    pub const fn p501pfs(
2384        &self,
2385    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2386        unsafe {
2387            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2388                self._svd2pac_as_ptr().add(0x144usize),
2389            )
2390        }
2391    }
2392    #[inline(always)]
2393    pub const fn p502pfs(
2394        &self,
2395    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2396        unsafe {
2397            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2398                self._svd2pac_as_ptr().add(0x148usize),
2399            )
2400        }
2401    }
2402    #[inline(always)]
2403    pub const fn p503pfs(
2404        &self,
2405    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2406        unsafe {
2407            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2408                self._svd2pac_as_ptr().add(0x14cusize),
2409            )
2410        }
2411    }
2412    #[inline(always)]
2413    pub const fn p504pfs(
2414        &self,
2415    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2416        unsafe {
2417            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2418                self._svd2pac_as_ptr().add(0x150usize),
2419            )
2420        }
2421    }
2422    #[inline(always)]
2423    pub const fn p505pfs(
2424        &self,
2425    ) -> &'static crate::common::Reg<self::P50Pfs_SPEC, crate::common::RW> {
2426        unsafe {
2427            crate::common::Reg::<self::P50Pfs_SPEC, crate::common::RW>::from_ptr(
2428                self._svd2pac_as_ptr().add(0x154usize),
2429            )
2430        }
2431    }
2432
2433    #[doc = "Port 50%s Pin Function Select Register"]
2434    #[inline(always)]
2435    pub const fn p50pfs_ha(
2436        &self,
2437    ) -> &'static crate::common::ClusterRegisterArray<
2438        crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW>,
2439        6,
2440        0x4,
2441    > {
2442        unsafe {
2443            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x142usize))
2444        }
2445    }
2446    #[inline(always)]
2447    pub const fn p500pfs_ha(
2448        &self,
2449    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2450        unsafe {
2451            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2452                self._svd2pac_as_ptr().add(0x142usize),
2453            )
2454        }
2455    }
2456    #[inline(always)]
2457    pub const fn p501pfs_ha(
2458        &self,
2459    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2460        unsafe {
2461            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2462                self._svd2pac_as_ptr().add(0x146usize),
2463            )
2464        }
2465    }
2466    #[inline(always)]
2467    pub const fn p502pfs_ha(
2468        &self,
2469    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2470        unsafe {
2471            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2472                self._svd2pac_as_ptr().add(0x14ausize),
2473            )
2474        }
2475    }
2476    #[inline(always)]
2477    pub const fn p503pfs_ha(
2478        &self,
2479    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2480        unsafe {
2481            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2482                self._svd2pac_as_ptr().add(0x14eusize),
2483            )
2484        }
2485    }
2486    #[inline(always)]
2487    pub const fn p504pfs_ha(
2488        &self,
2489    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2490        unsafe {
2491            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2492                self._svd2pac_as_ptr().add(0x152usize),
2493            )
2494        }
2495    }
2496    #[inline(always)]
2497    pub const fn p505pfs_ha(
2498        &self,
2499    ) -> &'static crate::common::Reg<self::P50PfsHa_SPEC, crate::common::RW> {
2500        unsafe {
2501            crate::common::Reg::<self::P50PfsHa_SPEC, crate::common::RW>::from_ptr(
2502                self._svd2pac_as_ptr().add(0x156usize),
2503            )
2504        }
2505    }
2506
2507    #[doc = "Port 50%s Pin Function Select Register"]
2508    #[inline(always)]
2509    pub const fn p50pfs_by(
2510        &self,
2511    ) -> &'static crate::common::ClusterRegisterArray<
2512        crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW>,
2513        6,
2514        0x4,
2515    > {
2516        unsafe {
2517            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x143usize))
2518        }
2519    }
2520    #[inline(always)]
2521    pub const fn p500pfs_by(
2522        &self,
2523    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2524        unsafe {
2525            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2526                self._svd2pac_as_ptr().add(0x143usize),
2527            )
2528        }
2529    }
2530    #[inline(always)]
2531    pub const fn p501pfs_by(
2532        &self,
2533    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2534        unsafe {
2535            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2536                self._svd2pac_as_ptr().add(0x147usize),
2537            )
2538        }
2539    }
2540    #[inline(always)]
2541    pub const fn p502pfs_by(
2542        &self,
2543    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2544        unsafe {
2545            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2546                self._svd2pac_as_ptr().add(0x14busize),
2547            )
2548        }
2549    }
2550    #[inline(always)]
2551    pub const fn p503pfs_by(
2552        &self,
2553    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2554        unsafe {
2555            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2556                self._svd2pac_as_ptr().add(0x14fusize),
2557            )
2558        }
2559    }
2560    #[inline(always)]
2561    pub const fn p504pfs_by(
2562        &self,
2563    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2564        unsafe {
2565            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2566                self._svd2pac_as_ptr().add(0x153usize),
2567            )
2568        }
2569    }
2570    #[inline(always)]
2571    pub const fn p505pfs_by(
2572        &self,
2573    ) -> &'static crate::common::Reg<self::P50PfsBy_SPEC, crate::common::RW> {
2574        unsafe {
2575            crate::common::Reg::<self::P50PfsBy_SPEC, crate::common::RW>::from_ptr(
2576                self._svd2pac_as_ptr().add(0x157usize),
2577            )
2578        }
2579    }
2580
2581    #[doc = "Port 60%s Pin Function Select Register"]
2582    #[inline(always)]
2583    pub const fn p60pfs(
2584        &self,
2585    ) -> &'static crate::common::ClusterRegisterArray<
2586        crate::common::Reg<self::P60Pfs_SPEC, crate::common::RW>,
2587        2,
2588        0x4,
2589    > {
2590        unsafe {
2591            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x1a0usize))
2592        }
2593    }
2594    #[inline(always)]
2595    pub const fn p608pfs(
2596        &self,
2597    ) -> &'static crate::common::Reg<self::P60Pfs_SPEC, crate::common::RW> {
2598        unsafe {
2599            crate::common::Reg::<self::P60Pfs_SPEC, crate::common::RW>::from_ptr(
2600                self._svd2pac_as_ptr().add(0x1a0usize),
2601            )
2602        }
2603    }
2604    #[inline(always)]
2605    pub const fn p609pfs(
2606        &self,
2607    ) -> &'static crate::common::Reg<self::P60Pfs_SPEC, crate::common::RW> {
2608        unsafe {
2609            crate::common::Reg::<self::P60Pfs_SPEC, crate::common::RW>::from_ptr(
2610                self._svd2pac_as_ptr().add(0x1a4usize),
2611            )
2612        }
2613    }
2614
2615    #[doc = "Port 60%s Pin Function Select Register"]
2616    #[inline(always)]
2617    pub const fn p60pfs_ha(
2618        &self,
2619    ) -> &'static crate::common::ClusterRegisterArray<
2620        crate::common::Reg<self::P60PfsHa_SPEC, crate::common::RW>,
2621        2,
2622        0x4,
2623    > {
2624        unsafe {
2625            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x1a2usize))
2626        }
2627    }
2628    #[inline(always)]
2629    pub const fn p608pfs_ha(
2630        &self,
2631    ) -> &'static crate::common::Reg<self::P60PfsHa_SPEC, crate::common::RW> {
2632        unsafe {
2633            crate::common::Reg::<self::P60PfsHa_SPEC, crate::common::RW>::from_ptr(
2634                self._svd2pac_as_ptr().add(0x1a2usize),
2635            )
2636        }
2637    }
2638    #[inline(always)]
2639    pub const fn p609pfs_ha(
2640        &self,
2641    ) -> &'static crate::common::Reg<self::P60PfsHa_SPEC, crate::common::RW> {
2642        unsafe {
2643            crate::common::Reg::<self::P60PfsHa_SPEC, crate::common::RW>::from_ptr(
2644                self._svd2pac_as_ptr().add(0x1a6usize),
2645            )
2646        }
2647    }
2648
2649    #[doc = "Port 60%s Pin Function Select Register"]
2650    #[inline(always)]
2651    pub const fn p60pfs_by(
2652        &self,
2653    ) -> &'static crate::common::ClusterRegisterArray<
2654        crate::common::Reg<self::P60PfsBy_SPEC, crate::common::RW>,
2655        2,
2656        0x4,
2657    > {
2658        unsafe {
2659            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x1a3usize))
2660        }
2661    }
2662    #[inline(always)]
2663    pub const fn p608pfs_by(
2664        &self,
2665    ) -> &'static crate::common::Reg<self::P60PfsBy_SPEC, crate::common::RW> {
2666        unsafe {
2667            crate::common::Reg::<self::P60PfsBy_SPEC, crate::common::RW>::from_ptr(
2668                self._svd2pac_as_ptr().add(0x1a3usize),
2669            )
2670        }
2671    }
2672    #[inline(always)]
2673    pub const fn p609pfs_by(
2674        &self,
2675    ) -> &'static crate::common::Reg<self::P60PfsBy_SPEC, crate::common::RW> {
2676        unsafe {
2677            crate::common::Reg::<self::P60PfsBy_SPEC, crate::common::RW>::from_ptr(
2678                self._svd2pac_as_ptr().add(0x1a7usize),
2679            )
2680        }
2681    }
2682
2683    #[doc = "Port 610 Pin Function Select Register"]
2684    #[inline(always)]
2685    pub const fn p610pfs(
2686        &self,
2687    ) -> &'static crate::common::Reg<self::P610Pfs_SPEC, crate::common::RW> {
2688        unsafe {
2689            crate::common::Reg::<self::P610Pfs_SPEC, crate::common::RW>::from_ptr(
2690                self._svd2pac_as_ptr().add(424usize),
2691            )
2692        }
2693    }
2694
2695    #[doc = "Port 610 Pin Function Select Register"]
2696    #[inline(always)]
2697    pub const fn p610pfs_ha(
2698        &self,
2699    ) -> &'static crate::common::Reg<self::P610PfsHa_SPEC, crate::common::RW> {
2700        unsafe {
2701            crate::common::Reg::<self::P610PfsHa_SPEC, crate::common::RW>::from_ptr(
2702                self._svd2pac_as_ptr().add(426usize),
2703            )
2704        }
2705    }
2706
2707    #[doc = "Port 610 Pin Function Select Register"]
2708    #[inline(always)]
2709    pub const fn p610pfs_by(
2710        &self,
2711    ) -> &'static crate::common::Reg<self::P610PfsBy_SPEC, crate::common::RW> {
2712        unsafe {
2713            crate::common::Reg::<self::P610PfsBy_SPEC, crate::common::RW>::from_ptr(
2714                self._svd2pac_as_ptr().add(427usize),
2715            )
2716        }
2717    }
2718
2719    #[doc = "Port 708 Pin Function Select Register"]
2720    #[inline(always)]
2721    pub const fn p708pfs(
2722        &self,
2723    ) -> &'static crate::common::Reg<self::P708Pfs_SPEC, crate::common::RW> {
2724        unsafe {
2725            crate::common::Reg::<self::P708Pfs_SPEC, crate::common::RW>::from_ptr(
2726                self._svd2pac_as_ptr().add(480usize),
2727            )
2728        }
2729    }
2730
2731    #[doc = "Port 708 Pin Function Select Register"]
2732    #[inline(always)]
2733    pub const fn p708pfs_ha(
2734        &self,
2735    ) -> &'static crate::common::Reg<self::P708PfsHa_SPEC, crate::common::RW> {
2736        unsafe {
2737            crate::common::Reg::<self::P708PfsHa_SPEC, crate::common::RW>::from_ptr(
2738                self._svd2pac_as_ptr().add(482usize),
2739            )
2740        }
2741    }
2742
2743    #[doc = "Port 708 Pin Function Select Register"]
2744    #[inline(always)]
2745    pub const fn p708pfs_by(
2746        &self,
2747    ) -> &'static crate::common::Reg<self::P708PfsBy_SPEC, crate::common::RW> {
2748        unsafe {
2749            crate::common::Reg::<self::P708PfsBy_SPEC, crate::common::RW>::from_ptr(
2750                self._svd2pac_as_ptr().add(483usize),
2751            )
2752        }
2753    }
2754
2755    #[doc = "Write-Protect Register"]
2756    #[inline(always)]
2757    pub const fn pwpr(&self) -> &'static crate::common::Reg<self::Pwpr_SPEC, crate::common::RW> {
2758        unsafe {
2759            crate::common::Reg::<self::Pwpr_SPEC, crate::common::RW>::from_ptr(
2760                self._svd2pac_as_ptr().add(1283usize),
2761            )
2762        }
2763    }
2764
2765    #[doc = "Write-Protect Register for Secure"]
2766    #[inline(always)]
2767    pub const fn pwprs(&self) -> &'static crate::common::Reg<self::Pwprs_SPEC, crate::common::RW> {
2768        unsafe {
2769            crate::common::Reg::<self::Pwprs_SPEC, crate::common::RW>::from_ptr(
2770                self._svd2pac_as_ptr().add(1285usize),
2771            )
2772        }
2773    }
2774
2775    #[doc = "Port Security Attribution register"]
2776    #[inline(always)]
2777    pub const fn psar(
2778        &self,
2779    ) -> &'static crate::common::ClusterRegisterArray<
2780        crate::common::Reg<self::Psar_SPEC, crate::common::RW>,
2781        8,
2782        0x2,
2783    > {
2784        unsafe {
2785            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x510usize))
2786        }
2787    }
2788    #[inline(always)]
2789    pub const fn p0sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
2790        unsafe {
2791            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
2792                self._svd2pac_as_ptr().add(0x510usize),
2793            )
2794        }
2795    }
2796    #[inline(always)]
2797    pub const fn p1sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
2798        unsafe {
2799            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
2800                self._svd2pac_as_ptr().add(0x512usize),
2801            )
2802        }
2803    }
2804    #[inline(always)]
2805    pub const fn p2sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
2806        unsafe {
2807            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
2808                self._svd2pac_as_ptr().add(0x514usize),
2809            )
2810        }
2811    }
2812    #[inline(always)]
2813    pub const fn p3sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
2814        unsafe {
2815            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
2816                self._svd2pac_as_ptr().add(0x516usize),
2817            )
2818        }
2819    }
2820    #[inline(always)]
2821    pub const fn p4sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
2822        unsafe {
2823            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
2824                self._svd2pac_as_ptr().add(0x518usize),
2825            )
2826        }
2827    }
2828    #[inline(always)]
2829    pub const fn p5sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
2830        unsafe {
2831            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
2832                self._svd2pac_as_ptr().add(0x51ausize),
2833            )
2834        }
2835    }
2836    #[inline(always)]
2837    pub const fn p6sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
2838        unsafe {
2839            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
2840                self._svd2pac_as_ptr().add(0x51cusize),
2841            )
2842        }
2843    }
2844    #[inline(always)]
2845    pub const fn p7sar(&self) -> &'static crate::common::Reg<self::Psar_SPEC, crate::common::RW> {
2846        unsafe {
2847            crate::common::Reg::<self::Psar_SPEC, crate::common::RW>::from_ptr(
2848                self._svd2pac_as_ptr().add(0x51eusize),
2849            )
2850        }
2851    }
2852}
2853#[doc(hidden)]
2854#[derive(Copy, Clone, Eq, PartialEq)]
2855pub struct P00Pfs_SPEC;
2856impl crate::sealed::RegSpec for P00Pfs_SPEC {
2857    type DataType = u32;
2858}
2859
2860#[doc = "Port 00%s Pin Function Select Register"]
2861pub type P00Pfs = crate::RegValueT<P00Pfs_SPEC>;
2862
2863impl P00Pfs {
2864    #[doc = "Port Output Data"]
2865    #[inline(always)]
2866    pub fn podr(
2867        self,
2868    ) -> crate::common::RegisterField<
2869        0,
2870        0x1,
2871        1,
2872        0,
2873        p00pfs::Podr,
2874        p00pfs::Podr,
2875        P00Pfs_SPEC,
2876        crate::common::RW,
2877    > {
2878        crate::common::RegisterField::<
2879            0,
2880            0x1,
2881            1,
2882            0,
2883            p00pfs::Podr,
2884            p00pfs::Podr,
2885            P00Pfs_SPEC,
2886            crate::common::RW,
2887        >::from_register(self, 0)
2888    }
2889
2890    #[doc = "Port State"]
2891    #[inline(always)]
2892    pub fn pidr(
2893        self,
2894    ) -> crate::common::RegisterField<
2895        1,
2896        0x1,
2897        1,
2898        0,
2899        p00pfs::Pidr,
2900        p00pfs::Pidr,
2901        P00Pfs_SPEC,
2902        crate::common::R,
2903    > {
2904        crate::common::RegisterField::<
2905            1,
2906            0x1,
2907            1,
2908            0,
2909            p00pfs::Pidr,
2910            p00pfs::Pidr,
2911            P00Pfs_SPEC,
2912            crate::common::R,
2913        >::from_register(self, 0)
2914    }
2915
2916    #[doc = "Port Direction"]
2917    #[inline(always)]
2918    pub fn pdr(
2919        self,
2920    ) -> crate::common::RegisterField<
2921        2,
2922        0x1,
2923        1,
2924        0,
2925        p00pfs::Pdr,
2926        p00pfs::Pdr,
2927        P00Pfs_SPEC,
2928        crate::common::RW,
2929    > {
2930        crate::common::RegisterField::<
2931            2,
2932            0x1,
2933            1,
2934            0,
2935            p00pfs::Pdr,
2936            p00pfs::Pdr,
2937            P00Pfs_SPEC,
2938            crate::common::RW,
2939        >::from_register(self, 0)
2940    }
2941
2942    #[doc = "Pull-up Control"]
2943    #[inline(always)]
2944    pub fn pcr(
2945        self,
2946    ) -> crate::common::RegisterField<
2947        4,
2948        0x1,
2949        1,
2950        0,
2951        p00pfs::Pcr,
2952        p00pfs::Pcr,
2953        P00Pfs_SPEC,
2954        crate::common::RW,
2955    > {
2956        crate::common::RegisterField::<
2957            4,
2958            0x1,
2959            1,
2960            0,
2961            p00pfs::Pcr,
2962            p00pfs::Pcr,
2963            P00Pfs_SPEC,
2964            crate::common::RW,
2965        >::from_register(self, 0)
2966    }
2967
2968    #[doc = "N-Channel Open-Drain Control"]
2969    #[inline(always)]
2970    pub fn ncodr(
2971        self,
2972    ) -> crate::common::RegisterField<
2973        6,
2974        0x1,
2975        1,
2976        0,
2977        p00pfs::Ncodr,
2978        p00pfs::Ncodr,
2979        P00Pfs_SPEC,
2980        crate::common::RW,
2981    > {
2982        crate::common::RegisterField::<
2983            6,
2984            0x1,
2985            1,
2986            0,
2987            p00pfs::Ncodr,
2988            p00pfs::Ncodr,
2989            P00Pfs_SPEC,
2990            crate::common::RW,
2991        >::from_register(self, 0)
2992    }
2993
2994    #[doc = "Port Drive Capability"]
2995    #[inline(always)]
2996    pub fn dscr(
2997        self,
2998    ) -> crate::common::RegisterField<
2999        10,
3000        0x3,
3001        1,
3002        0,
3003        p00pfs::Dscr,
3004        p00pfs::Dscr,
3005        P00Pfs_SPEC,
3006        crate::common::RW,
3007    > {
3008        crate::common::RegisterField::<
3009            10,
3010            0x3,
3011            1,
3012            0,
3013            p00pfs::Dscr,
3014            p00pfs::Dscr,
3015            P00Pfs_SPEC,
3016            crate::common::RW,
3017        >::from_register(self, 0)
3018    }
3019
3020    #[doc = "Event on Falling/Event on Rising"]
3021    #[inline(always)]
3022    pub fn eofr(
3023        self,
3024    ) -> crate::common::RegisterField<
3025        12,
3026        0x3,
3027        1,
3028        0,
3029        p00pfs::Eofr,
3030        p00pfs::Eofr,
3031        P00Pfs_SPEC,
3032        crate::common::RW,
3033    > {
3034        crate::common::RegisterField::<
3035            12,
3036            0x3,
3037            1,
3038            0,
3039            p00pfs::Eofr,
3040            p00pfs::Eofr,
3041            P00Pfs_SPEC,
3042            crate::common::RW,
3043        >::from_register(self, 0)
3044    }
3045
3046    #[doc = "IRQ Input Enable"]
3047    #[inline(always)]
3048    pub fn isel(
3049        self,
3050    ) -> crate::common::RegisterField<
3051        14,
3052        0x1,
3053        1,
3054        0,
3055        p00pfs::Isel,
3056        p00pfs::Isel,
3057        P00Pfs_SPEC,
3058        crate::common::RW,
3059    > {
3060        crate::common::RegisterField::<
3061            14,
3062            0x1,
3063            1,
3064            0,
3065            p00pfs::Isel,
3066            p00pfs::Isel,
3067            P00Pfs_SPEC,
3068            crate::common::RW,
3069        >::from_register(self, 0)
3070    }
3071
3072    #[doc = "Analog Input Enable"]
3073    #[inline(always)]
3074    pub fn asel(
3075        self,
3076    ) -> crate::common::RegisterField<
3077        15,
3078        0x1,
3079        1,
3080        0,
3081        p00pfs::Asel,
3082        p00pfs::Asel,
3083        P00Pfs_SPEC,
3084        crate::common::RW,
3085    > {
3086        crate::common::RegisterField::<
3087            15,
3088            0x1,
3089            1,
3090            0,
3091            p00pfs::Asel,
3092            p00pfs::Asel,
3093            P00Pfs_SPEC,
3094            crate::common::RW,
3095        >::from_register(self, 0)
3096    }
3097
3098    #[doc = "Port Mode Control"]
3099    #[inline(always)]
3100    pub fn pmr(
3101        self,
3102    ) -> crate::common::RegisterField<
3103        16,
3104        0x1,
3105        1,
3106        0,
3107        p00pfs::Pmr,
3108        p00pfs::Pmr,
3109        P00Pfs_SPEC,
3110        crate::common::RW,
3111    > {
3112        crate::common::RegisterField::<
3113            16,
3114            0x1,
3115            1,
3116            0,
3117            p00pfs::Pmr,
3118            p00pfs::Pmr,
3119            P00Pfs_SPEC,
3120            crate::common::RW,
3121        >::from_register(self, 0)
3122    }
3123
3124    #[doc = "Peripheral Select"]
3125    #[inline(always)]
3126    pub fn psel(
3127        self,
3128    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P00Pfs_SPEC, crate::common::RW> {
3129        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P00Pfs_SPEC,crate::common::RW>::from_register(self,0)
3130    }
3131}
3132impl ::core::default::Default for P00Pfs {
3133    #[inline(always)]
3134    fn default() -> P00Pfs {
3135        <crate::RegValueT<P00Pfs_SPEC> as RegisterValue<_>>::new(0)
3136    }
3137}
3138pub mod p00pfs {
3139
3140    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3141    pub struct Podr_SPEC;
3142    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
3143    impl Podr {
3144        #[doc = "Output low"]
3145        pub const _0: Self = Self::new(0);
3146
3147        #[doc = "Output high"]
3148        pub const _1: Self = Self::new(1);
3149    }
3150    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3151    pub struct Pidr_SPEC;
3152    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
3153    impl Pidr {
3154        #[doc = "Low level"]
3155        pub const _0: Self = Self::new(0);
3156
3157        #[doc = "High level"]
3158        pub const _1: Self = Self::new(1);
3159    }
3160    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3161    pub struct Pdr_SPEC;
3162    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
3163    impl Pdr {
3164        #[doc = "Input (functions as an input pin)"]
3165        pub const _0: Self = Self::new(0);
3166
3167        #[doc = "Output (functions as an output pin)"]
3168        pub const _1: Self = Self::new(1);
3169    }
3170    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3171    pub struct Pcr_SPEC;
3172    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
3173    impl Pcr {
3174        #[doc = "Disable input pull-up"]
3175        pub const _0: Self = Self::new(0);
3176
3177        #[doc = "Enable input pull-up"]
3178        pub const _1: Self = Self::new(1);
3179    }
3180    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3181    pub struct Ncodr_SPEC;
3182    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
3183    impl Ncodr {
3184        #[doc = "Output CMOS"]
3185        pub const _0: Self = Self::new(0);
3186
3187        #[doc = "Output NMOS open-drain"]
3188        pub const _1: Self = Self::new(1);
3189    }
3190    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3191    pub struct Dscr_SPEC;
3192    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
3193    impl Dscr {
3194        #[doc = "Low drive"]
3195        pub const _00: Self = Self::new(0);
3196
3197        #[doc = "Middle drive"]
3198        pub const _01: Self = Self::new(1);
3199
3200        #[doc = "Setting prohibited"]
3201        pub const _10: Self = Self::new(2);
3202
3203        #[doc = "High drive"]
3204        pub const _11: Self = Self::new(3);
3205    }
3206    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3207    pub struct Eofr_SPEC;
3208    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
3209    impl Eofr {
3210        #[doc = "Don\'t care"]
3211        pub const _00: Self = Self::new(0);
3212
3213        #[doc = "Detect rising edge"]
3214        pub const _01: Self = Self::new(1);
3215
3216        #[doc = "Detect falling edge"]
3217        pub const _10: Self = Self::new(2);
3218
3219        #[doc = "Detect both edges"]
3220        pub const _11: Self = Self::new(3);
3221    }
3222    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3223    pub struct Isel_SPEC;
3224    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
3225    impl Isel {
3226        #[doc = "Do not use as IRQn input pin"]
3227        pub const _0: Self = Self::new(0);
3228
3229        #[doc = "Use as IRQn input pin"]
3230        pub const _1: Self = Self::new(1);
3231    }
3232    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3233    pub struct Asel_SPEC;
3234    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
3235    impl Asel {
3236        #[doc = "Do not use as analog pin"]
3237        pub const _0: Self = Self::new(0);
3238
3239        #[doc = "Use as analog pin"]
3240        pub const _1: Self = Self::new(1);
3241    }
3242    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3243    pub struct Pmr_SPEC;
3244    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
3245    impl Pmr {
3246        #[doc = "Use as general I/O pin"]
3247        pub const _0: Self = Self::new(0);
3248
3249        #[doc = "Use as I/O port for peripheral functions"]
3250        pub const _1: Self = Self::new(1);
3251    }
3252}
3253#[doc(hidden)]
3254#[derive(Copy, Clone, Eq, PartialEq)]
3255pub struct P00PfsHa_SPEC;
3256impl crate::sealed::RegSpec for P00PfsHa_SPEC {
3257    type DataType = u16;
3258}
3259
3260#[doc = "Port 00%s Pin Function Select Register"]
3261pub type P00PfsHa = crate::RegValueT<P00PfsHa_SPEC>;
3262
3263impl P00PfsHa {
3264    #[doc = "Port Output Data"]
3265    #[inline(always)]
3266    pub fn podr(
3267        self,
3268    ) -> crate::common::RegisterField<
3269        0,
3270        0x1,
3271        1,
3272        0,
3273        p00pfs_ha::Podr,
3274        p00pfs_ha::Podr,
3275        P00PfsHa_SPEC,
3276        crate::common::RW,
3277    > {
3278        crate::common::RegisterField::<
3279            0,
3280            0x1,
3281            1,
3282            0,
3283            p00pfs_ha::Podr,
3284            p00pfs_ha::Podr,
3285            P00PfsHa_SPEC,
3286            crate::common::RW,
3287        >::from_register(self, 0)
3288    }
3289
3290    #[doc = "Port State"]
3291    #[inline(always)]
3292    pub fn pidr(
3293        self,
3294    ) -> crate::common::RegisterField<
3295        1,
3296        0x1,
3297        1,
3298        0,
3299        p00pfs_ha::Pidr,
3300        p00pfs_ha::Pidr,
3301        P00PfsHa_SPEC,
3302        crate::common::R,
3303    > {
3304        crate::common::RegisterField::<
3305            1,
3306            0x1,
3307            1,
3308            0,
3309            p00pfs_ha::Pidr,
3310            p00pfs_ha::Pidr,
3311            P00PfsHa_SPEC,
3312            crate::common::R,
3313        >::from_register(self, 0)
3314    }
3315
3316    #[doc = "Port Direction"]
3317    #[inline(always)]
3318    pub fn pdr(
3319        self,
3320    ) -> crate::common::RegisterField<
3321        2,
3322        0x1,
3323        1,
3324        0,
3325        p00pfs_ha::Pdr,
3326        p00pfs_ha::Pdr,
3327        P00PfsHa_SPEC,
3328        crate::common::RW,
3329    > {
3330        crate::common::RegisterField::<
3331            2,
3332            0x1,
3333            1,
3334            0,
3335            p00pfs_ha::Pdr,
3336            p00pfs_ha::Pdr,
3337            P00PfsHa_SPEC,
3338            crate::common::RW,
3339        >::from_register(self, 0)
3340    }
3341
3342    #[doc = "Pull-up Control"]
3343    #[inline(always)]
3344    pub fn pcr(
3345        self,
3346    ) -> crate::common::RegisterField<
3347        4,
3348        0x1,
3349        1,
3350        0,
3351        p00pfs_ha::Pcr,
3352        p00pfs_ha::Pcr,
3353        P00PfsHa_SPEC,
3354        crate::common::RW,
3355    > {
3356        crate::common::RegisterField::<
3357            4,
3358            0x1,
3359            1,
3360            0,
3361            p00pfs_ha::Pcr,
3362            p00pfs_ha::Pcr,
3363            P00PfsHa_SPEC,
3364            crate::common::RW,
3365        >::from_register(self, 0)
3366    }
3367
3368    #[doc = "N-Channel Open-Drain Control"]
3369    #[inline(always)]
3370    pub fn ncodr(
3371        self,
3372    ) -> crate::common::RegisterField<
3373        6,
3374        0x1,
3375        1,
3376        0,
3377        p00pfs_ha::Ncodr,
3378        p00pfs_ha::Ncodr,
3379        P00PfsHa_SPEC,
3380        crate::common::RW,
3381    > {
3382        crate::common::RegisterField::<
3383            6,
3384            0x1,
3385            1,
3386            0,
3387            p00pfs_ha::Ncodr,
3388            p00pfs_ha::Ncodr,
3389            P00PfsHa_SPEC,
3390            crate::common::RW,
3391        >::from_register(self, 0)
3392    }
3393
3394    #[doc = "Port Drive Capability"]
3395    #[inline(always)]
3396    pub fn dscr(
3397        self,
3398    ) -> crate::common::RegisterField<
3399        10,
3400        0x3,
3401        1,
3402        0,
3403        p00pfs_ha::Dscr,
3404        p00pfs_ha::Dscr,
3405        P00PfsHa_SPEC,
3406        crate::common::RW,
3407    > {
3408        crate::common::RegisterField::<
3409            10,
3410            0x3,
3411            1,
3412            0,
3413            p00pfs_ha::Dscr,
3414            p00pfs_ha::Dscr,
3415            P00PfsHa_SPEC,
3416            crate::common::RW,
3417        >::from_register(self, 0)
3418    }
3419
3420    #[doc = "Event on Falling/Event on Rising"]
3421    #[inline(always)]
3422    pub fn eofr(
3423        self,
3424    ) -> crate::common::RegisterField<
3425        12,
3426        0x3,
3427        1,
3428        0,
3429        p00pfs_ha::Eofr,
3430        p00pfs_ha::Eofr,
3431        P00PfsHa_SPEC,
3432        crate::common::RW,
3433    > {
3434        crate::common::RegisterField::<
3435            12,
3436            0x3,
3437            1,
3438            0,
3439            p00pfs_ha::Eofr,
3440            p00pfs_ha::Eofr,
3441            P00PfsHa_SPEC,
3442            crate::common::RW,
3443        >::from_register(self, 0)
3444    }
3445
3446    #[doc = "IRQ Input Enable"]
3447    #[inline(always)]
3448    pub fn isel(
3449        self,
3450    ) -> crate::common::RegisterField<
3451        14,
3452        0x1,
3453        1,
3454        0,
3455        p00pfs_ha::Isel,
3456        p00pfs_ha::Isel,
3457        P00PfsHa_SPEC,
3458        crate::common::RW,
3459    > {
3460        crate::common::RegisterField::<
3461            14,
3462            0x1,
3463            1,
3464            0,
3465            p00pfs_ha::Isel,
3466            p00pfs_ha::Isel,
3467            P00PfsHa_SPEC,
3468            crate::common::RW,
3469        >::from_register(self, 0)
3470    }
3471
3472    #[doc = "Analog Input Enable"]
3473    #[inline(always)]
3474    pub fn asel(
3475        self,
3476    ) -> crate::common::RegisterField<
3477        15,
3478        0x1,
3479        1,
3480        0,
3481        p00pfs_ha::Asel,
3482        p00pfs_ha::Asel,
3483        P00PfsHa_SPEC,
3484        crate::common::RW,
3485    > {
3486        crate::common::RegisterField::<
3487            15,
3488            0x1,
3489            1,
3490            0,
3491            p00pfs_ha::Asel,
3492            p00pfs_ha::Asel,
3493            P00PfsHa_SPEC,
3494            crate::common::RW,
3495        >::from_register(self, 0)
3496    }
3497}
3498impl ::core::default::Default for P00PfsHa {
3499    #[inline(always)]
3500    fn default() -> P00PfsHa {
3501        <crate::RegValueT<P00PfsHa_SPEC> as RegisterValue<_>>::new(0)
3502    }
3503}
3504pub mod p00pfs_ha {
3505
3506    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3507    pub struct Podr_SPEC;
3508    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
3509    impl Podr {
3510        #[doc = "Output low"]
3511        pub const _0: Self = Self::new(0);
3512
3513        #[doc = "Output high"]
3514        pub const _1: Self = Self::new(1);
3515    }
3516    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3517    pub struct Pidr_SPEC;
3518    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
3519    impl Pidr {
3520        #[doc = "Low level"]
3521        pub const _0: Self = Self::new(0);
3522
3523        #[doc = "High level"]
3524        pub const _1: Self = Self::new(1);
3525    }
3526    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3527    pub struct Pdr_SPEC;
3528    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
3529    impl Pdr {
3530        #[doc = "Input (functions as an input pin)"]
3531        pub const _0: Self = Self::new(0);
3532
3533        #[doc = "Output (functions as an output pin)"]
3534        pub const _1: Self = Self::new(1);
3535    }
3536    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3537    pub struct Pcr_SPEC;
3538    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
3539    impl Pcr {
3540        #[doc = "Disable input pull-up"]
3541        pub const _0: Self = Self::new(0);
3542
3543        #[doc = "Enable input pull-up"]
3544        pub const _1: Self = Self::new(1);
3545    }
3546    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3547    pub struct Ncodr_SPEC;
3548    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
3549    impl Ncodr {
3550        #[doc = "Output CMOS"]
3551        pub const _0: Self = Self::new(0);
3552
3553        #[doc = "Output NMOS open-drain"]
3554        pub const _1: Self = Self::new(1);
3555    }
3556    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3557    pub struct Dscr_SPEC;
3558    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
3559    impl Dscr {
3560        #[doc = "Low drive"]
3561        pub const _00: Self = Self::new(0);
3562
3563        #[doc = "Middle drive"]
3564        pub const _01: Self = Self::new(1);
3565
3566        #[doc = "Setting prohibited"]
3567        pub const _10: Self = Self::new(2);
3568
3569        #[doc = "High drive"]
3570        pub const _11: Self = Self::new(3);
3571    }
3572    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3573    pub struct Eofr_SPEC;
3574    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
3575    impl Eofr {
3576        #[doc = "Don\'t care"]
3577        pub const _00: Self = Self::new(0);
3578
3579        #[doc = "Detect rising edge"]
3580        pub const _01: Self = Self::new(1);
3581
3582        #[doc = "Detect falling edge"]
3583        pub const _10: Self = Self::new(2);
3584
3585        #[doc = "Detect both edges"]
3586        pub const _11: Self = Self::new(3);
3587    }
3588    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3589    pub struct Isel_SPEC;
3590    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
3591    impl Isel {
3592        #[doc = "Do not use as IRQn input pin"]
3593        pub const _0: Self = Self::new(0);
3594
3595        #[doc = "Use as IRQn input pin"]
3596        pub const _1: Self = Self::new(1);
3597    }
3598    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3599    pub struct Asel_SPEC;
3600    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
3601    impl Asel {
3602        #[doc = "Do not use as analog pin"]
3603        pub const _0: Self = Self::new(0);
3604
3605        #[doc = "Use as analog pin"]
3606        pub const _1: Self = Self::new(1);
3607    }
3608}
3609#[doc(hidden)]
3610#[derive(Copy, Clone, Eq, PartialEq)]
3611pub struct P00PfsBy_SPEC;
3612impl crate::sealed::RegSpec for P00PfsBy_SPEC {
3613    type DataType = u8;
3614}
3615
3616#[doc = "Port 00%s Pin Function Select Register"]
3617pub type P00PfsBy = crate::RegValueT<P00PfsBy_SPEC>;
3618
3619impl P00PfsBy {
3620    #[doc = "Port Output Data"]
3621    #[inline(always)]
3622    pub fn podr(
3623        self,
3624    ) -> crate::common::RegisterField<
3625        0,
3626        0x1,
3627        1,
3628        0,
3629        p00pfs_by::Podr,
3630        p00pfs_by::Podr,
3631        P00PfsBy_SPEC,
3632        crate::common::RW,
3633    > {
3634        crate::common::RegisterField::<
3635            0,
3636            0x1,
3637            1,
3638            0,
3639            p00pfs_by::Podr,
3640            p00pfs_by::Podr,
3641            P00PfsBy_SPEC,
3642            crate::common::RW,
3643        >::from_register(self, 0)
3644    }
3645
3646    #[doc = "Port State"]
3647    #[inline(always)]
3648    pub fn pidr(
3649        self,
3650    ) -> crate::common::RegisterField<
3651        1,
3652        0x1,
3653        1,
3654        0,
3655        p00pfs_by::Pidr,
3656        p00pfs_by::Pidr,
3657        P00PfsBy_SPEC,
3658        crate::common::R,
3659    > {
3660        crate::common::RegisterField::<
3661            1,
3662            0x1,
3663            1,
3664            0,
3665            p00pfs_by::Pidr,
3666            p00pfs_by::Pidr,
3667            P00PfsBy_SPEC,
3668            crate::common::R,
3669        >::from_register(self, 0)
3670    }
3671
3672    #[doc = "Port Direction"]
3673    #[inline(always)]
3674    pub fn pdr(
3675        self,
3676    ) -> crate::common::RegisterField<
3677        2,
3678        0x1,
3679        1,
3680        0,
3681        p00pfs_by::Pdr,
3682        p00pfs_by::Pdr,
3683        P00PfsBy_SPEC,
3684        crate::common::RW,
3685    > {
3686        crate::common::RegisterField::<
3687            2,
3688            0x1,
3689            1,
3690            0,
3691            p00pfs_by::Pdr,
3692            p00pfs_by::Pdr,
3693            P00PfsBy_SPEC,
3694            crate::common::RW,
3695        >::from_register(self, 0)
3696    }
3697
3698    #[doc = "Pull-up Control"]
3699    #[inline(always)]
3700    pub fn pcr(
3701        self,
3702    ) -> crate::common::RegisterField<
3703        4,
3704        0x1,
3705        1,
3706        0,
3707        p00pfs_by::Pcr,
3708        p00pfs_by::Pcr,
3709        P00PfsBy_SPEC,
3710        crate::common::RW,
3711    > {
3712        crate::common::RegisterField::<
3713            4,
3714            0x1,
3715            1,
3716            0,
3717            p00pfs_by::Pcr,
3718            p00pfs_by::Pcr,
3719            P00PfsBy_SPEC,
3720            crate::common::RW,
3721        >::from_register(self, 0)
3722    }
3723
3724    #[doc = "N-Channel Open-Drain Control"]
3725    #[inline(always)]
3726    pub fn ncodr(
3727        self,
3728    ) -> crate::common::RegisterField<
3729        6,
3730        0x1,
3731        1,
3732        0,
3733        p00pfs_by::Ncodr,
3734        p00pfs_by::Ncodr,
3735        P00PfsBy_SPEC,
3736        crate::common::RW,
3737    > {
3738        crate::common::RegisterField::<
3739            6,
3740            0x1,
3741            1,
3742            0,
3743            p00pfs_by::Ncodr,
3744            p00pfs_by::Ncodr,
3745            P00PfsBy_SPEC,
3746            crate::common::RW,
3747        >::from_register(self, 0)
3748    }
3749}
3750impl ::core::default::Default for P00PfsBy {
3751    #[inline(always)]
3752    fn default() -> P00PfsBy {
3753        <crate::RegValueT<P00PfsBy_SPEC> as RegisterValue<_>>::new(0)
3754    }
3755}
3756pub mod p00pfs_by {
3757
3758    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3759    pub struct Podr_SPEC;
3760    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
3761    impl Podr {
3762        #[doc = "Output low"]
3763        pub const _0: Self = Self::new(0);
3764
3765        #[doc = "Output high"]
3766        pub const _1: Self = Self::new(1);
3767    }
3768    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3769    pub struct Pidr_SPEC;
3770    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
3771    impl Pidr {
3772        #[doc = "Low level"]
3773        pub const _0: Self = Self::new(0);
3774
3775        #[doc = "High level"]
3776        pub const _1: Self = Self::new(1);
3777    }
3778    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3779    pub struct Pdr_SPEC;
3780    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
3781    impl Pdr {
3782        #[doc = "Input (functions as an input pin)"]
3783        pub const _0: Self = Self::new(0);
3784
3785        #[doc = "Output (functions as an output pin)"]
3786        pub const _1: Self = Self::new(1);
3787    }
3788    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3789    pub struct Pcr_SPEC;
3790    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
3791    impl Pcr {
3792        #[doc = "Disable input pull-up"]
3793        pub const _0: Self = Self::new(0);
3794
3795        #[doc = "Enable input pull-up"]
3796        pub const _1: Self = Self::new(1);
3797    }
3798    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3799    pub struct Ncodr_SPEC;
3800    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
3801    impl Ncodr {
3802        #[doc = "Output CMOS"]
3803        pub const _0: Self = Self::new(0);
3804
3805        #[doc = "Output NMOS open-drain"]
3806        pub const _1: Self = Self::new(1);
3807    }
3808}
3809#[doc(hidden)]
3810#[derive(Copy, Clone, Eq, PartialEq)]
3811pub struct P008Pfs_SPEC;
3812impl crate::sealed::RegSpec for P008Pfs_SPEC {
3813    type DataType = u32;
3814}
3815
3816#[doc = "Port 008 Pin Function Select Register"]
3817pub type P008Pfs = crate::RegValueT<P008Pfs_SPEC>;
3818
3819impl P008Pfs {
3820    #[doc = "Port Output Data"]
3821    #[inline(always)]
3822    pub fn podr(
3823        self,
3824    ) -> crate::common::RegisterField<
3825        0,
3826        0x1,
3827        1,
3828        0,
3829        p008pfs::Podr,
3830        p008pfs::Podr,
3831        P008Pfs_SPEC,
3832        crate::common::RW,
3833    > {
3834        crate::common::RegisterField::<
3835            0,
3836            0x1,
3837            1,
3838            0,
3839            p008pfs::Podr,
3840            p008pfs::Podr,
3841            P008Pfs_SPEC,
3842            crate::common::RW,
3843        >::from_register(self, 0)
3844    }
3845
3846    #[doc = "Port State"]
3847    #[inline(always)]
3848    pub fn pidr(
3849        self,
3850    ) -> crate::common::RegisterField<
3851        1,
3852        0x1,
3853        1,
3854        0,
3855        p008pfs::Pidr,
3856        p008pfs::Pidr,
3857        P008Pfs_SPEC,
3858        crate::common::R,
3859    > {
3860        crate::common::RegisterField::<
3861            1,
3862            0x1,
3863            1,
3864            0,
3865            p008pfs::Pidr,
3866            p008pfs::Pidr,
3867            P008Pfs_SPEC,
3868            crate::common::R,
3869        >::from_register(self, 0)
3870    }
3871
3872    #[doc = "Port Direction"]
3873    #[inline(always)]
3874    pub fn pdr(
3875        self,
3876    ) -> crate::common::RegisterField<
3877        2,
3878        0x1,
3879        1,
3880        0,
3881        p008pfs::Pdr,
3882        p008pfs::Pdr,
3883        P008Pfs_SPEC,
3884        crate::common::RW,
3885    > {
3886        crate::common::RegisterField::<
3887            2,
3888            0x1,
3889            1,
3890            0,
3891            p008pfs::Pdr,
3892            p008pfs::Pdr,
3893            P008Pfs_SPEC,
3894            crate::common::RW,
3895        >::from_register(self, 0)
3896    }
3897
3898    #[doc = "Pull-up Control"]
3899    #[inline(always)]
3900    pub fn pcr(
3901        self,
3902    ) -> crate::common::RegisterField<
3903        4,
3904        0x1,
3905        1,
3906        0,
3907        p008pfs::Pcr,
3908        p008pfs::Pcr,
3909        P008Pfs_SPEC,
3910        crate::common::RW,
3911    > {
3912        crate::common::RegisterField::<
3913            4,
3914            0x1,
3915            1,
3916            0,
3917            p008pfs::Pcr,
3918            p008pfs::Pcr,
3919            P008Pfs_SPEC,
3920            crate::common::RW,
3921        >::from_register(self, 0)
3922    }
3923
3924    #[doc = "N-Channel Open-Drain Control"]
3925    #[inline(always)]
3926    pub fn ncodr(
3927        self,
3928    ) -> crate::common::RegisterField<
3929        6,
3930        0x1,
3931        1,
3932        0,
3933        p008pfs::Ncodr,
3934        p008pfs::Ncodr,
3935        P008Pfs_SPEC,
3936        crate::common::RW,
3937    > {
3938        crate::common::RegisterField::<
3939            6,
3940            0x1,
3941            1,
3942            0,
3943            p008pfs::Ncodr,
3944            p008pfs::Ncodr,
3945            P008Pfs_SPEC,
3946            crate::common::RW,
3947        >::from_register(self, 0)
3948    }
3949
3950    #[doc = "Port Drive Capability"]
3951    #[inline(always)]
3952    pub fn dscr(
3953        self,
3954    ) -> crate::common::RegisterField<
3955        10,
3956        0x3,
3957        1,
3958        0,
3959        p008pfs::Dscr,
3960        p008pfs::Dscr,
3961        P008Pfs_SPEC,
3962        crate::common::RW,
3963    > {
3964        crate::common::RegisterField::<
3965            10,
3966            0x3,
3967            1,
3968            0,
3969            p008pfs::Dscr,
3970            p008pfs::Dscr,
3971            P008Pfs_SPEC,
3972            crate::common::RW,
3973        >::from_register(self, 0)
3974    }
3975
3976    #[doc = "Event on Falling/Event on Rising"]
3977    #[inline(always)]
3978    pub fn eofr(
3979        self,
3980    ) -> crate::common::RegisterField<
3981        12,
3982        0x3,
3983        1,
3984        0,
3985        p008pfs::Eofr,
3986        p008pfs::Eofr,
3987        P008Pfs_SPEC,
3988        crate::common::RW,
3989    > {
3990        crate::common::RegisterField::<
3991            12,
3992            0x3,
3993            1,
3994            0,
3995            p008pfs::Eofr,
3996            p008pfs::Eofr,
3997            P008Pfs_SPEC,
3998            crate::common::RW,
3999        >::from_register(self, 0)
4000    }
4001
4002    #[doc = "IRQ Input Enable"]
4003    #[inline(always)]
4004    pub fn isel(
4005        self,
4006    ) -> crate::common::RegisterField<
4007        14,
4008        0x1,
4009        1,
4010        0,
4011        p008pfs::Isel,
4012        p008pfs::Isel,
4013        P008Pfs_SPEC,
4014        crate::common::RW,
4015    > {
4016        crate::common::RegisterField::<
4017            14,
4018            0x1,
4019            1,
4020            0,
4021            p008pfs::Isel,
4022            p008pfs::Isel,
4023            P008Pfs_SPEC,
4024            crate::common::RW,
4025        >::from_register(self, 0)
4026    }
4027
4028    #[doc = "Analog Input Enable"]
4029    #[inline(always)]
4030    pub fn asel(
4031        self,
4032    ) -> crate::common::RegisterField<
4033        15,
4034        0x1,
4035        1,
4036        0,
4037        p008pfs::Asel,
4038        p008pfs::Asel,
4039        P008Pfs_SPEC,
4040        crate::common::RW,
4041    > {
4042        crate::common::RegisterField::<
4043            15,
4044            0x1,
4045            1,
4046            0,
4047            p008pfs::Asel,
4048            p008pfs::Asel,
4049            P008Pfs_SPEC,
4050            crate::common::RW,
4051        >::from_register(self, 0)
4052    }
4053
4054    #[doc = "Port Mode Control"]
4055    #[inline(always)]
4056    pub fn pmr(
4057        self,
4058    ) -> crate::common::RegisterField<
4059        16,
4060        0x1,
4061        1,
4062        0,
4063        p008pfs::Pmr,
4064        p008pfs::Pmr,
4065        P008Pfs_SPEC,
4066        crate::common::RW,
4067    > {
4068        crate::common::RegisterField::<
4069            16,
4070            0x1,
4071            1,
4072            0,
4073            p008pfs::Pmr,
4074            p008pfs::Pmr,
4075            P008Pfs_SPEC,
4076            crate::common::RW,
4077        >::from_register(self, 0)
4078    }
4079
4080    #[doc = "Peripheral Select"]
4081    #[inline(always)]
4082    pub fn psel(
4083        self,
4084    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P008Pfs_SPEC, crate::common::RW> {
4085        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P008Pfs_SPEC,crate::common::RW>::from_register(self,0)
4086    }
4087}
4088impl ::core::default::Default for P008Pfs {
4089    #[inline(always)]
4090    fn default() -> P008Pfs {
4091        <crate::RegValueT<P008Pfs_SPEC> as RegisterValue<_>>::new(66576)
4092    }
4093}
4094pub mod p008pfs {
4095
4096    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4097    pub struct Podr_SPEC;
4098    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4099    impl Podr {
4100        #[doc = "Output low"]
4101        pub const _0: Self = Self::new(0);
4102
4103        #[doc = "Output high"]
4104        pub const _1: Self = Self::new(1);
4105    }
4106    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4107    pub struct Pidr_SPEC;
4108    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4109    impl Pidr {
4110        #[doc = "Low level"]
4111        pub const _0: Self = Self::new(0);
4112
4113        #[doc = "High level"]
4114        pub const _1: Self = Self::new(1);
4115    }
4116    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4117    pub struct Pdr_SPEC;
4118    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4119    impl Pdr {
4120        #[doc = "Input (functions as an input pin)"]
4121        pub const _0: Self = Self::new(0);
4122
4123        #[doc = "Output (functions as an output pin)"]
4124        pub const _1: Self = Self::new(1);
4125    }
4126    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4127    pub struct Pcr_SPEC;
4128    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4129    impl Pcr {
4130        #[doc = "Disable input pull-up"]
4131        pub const _0: Self = Self::new(0);
4132
4133        #[doc = "Enable input pull-up"]
4134        pub const _1: Self = Self::new(1);
4135    }
4136    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4137    pub struct Ncodr_SPEC;
4138    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4139    impl Ncodr {
4140        #[doc = "Output CMOS"]
4141        pub const _0: Self = Self::new(0);
4142
4143        #[doc = "Output NMOS open-drain"]
4144        pub const _1: Self = Self::new(1);
4145    }
4146    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4147    pub struct Dscr_SPEC;
4148    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
4149    impl Dscr {
4150        #[doc = "Low drive"]
4151        pub const _00: Self = Self::new(0);
4152
4153        #[doc = "Middle drive"]
4154        pub const _01: Self = Self::new(1);
4155
4156        #[doc = "Setting prohibited"]
4157        pub const _10: Self = Self::new(2);
4158
4159        #[doc = "High drive"]
4160        pub const _11: Self = Self::new(3);
4161    }
4162    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4163    pub struct Eofr_SPEC;
4164    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
4165    impl Eofr {
4166        #[doc = "Don\'t care"]
4167        pub const _00: Self = Self::new(0);
4168
4169        #[doc = "Detect rising edge"]
4170        pub const _01: Self = Self::new(1);
4171
4172        #[doc = "Detect falling edge"]
4173        pub const _10: Self = Self::new(2);
4174
4175        #[doc = "Detect both edges"]
4176        pub const _11: Self = Self::new(3);
4177    }
4178    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4179    pub struct Isel_SPEC;
4180    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
4181    impl Isel {
4182        #[doc = "Do not use as IRQn input pin"]
4183        pub const _0: Self = Self::new(0);
4184
4185        #[doc = "Use as IRQn input pin"]
4186        pub const _1: Self = Self::new(1);
4187    }
4188    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4189    pub struct Asel_SPEC;
4190    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
4191    impl Asel {
4192        #[doc = "Do not use as analog pin"]
4193        pub const _0: Self = Self::new(0);
4194
4195        #[doc = "Use as analog pin"]
4196        pub const _1: Self = Self::new(1);
4197    }
4198    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4199    pub struct Pmr_SPEC;
4200    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
4201    impl Pmr {
4202        #[doc = "Use as general I/O pin"]
4203        pub const _0: Self = Self::new(0);
4204
4205        #[doc = "Use as I/O port for peripheral functions"]
4206        pub const _1: Self = Self::new(1);
4207    }
4208}
4209#[doc(hidden)]
4210#[derive(Copy, Clone, Eq, PartialEq)]
4211pub struct P008PfsHa_SPEC;
4212impl crate::sealed::RegSpec for P008PfsHa_SPEC {
4213    type DataType = u16;
4214}
4215
4216#[doc = "Port 008 Pin Function Select Register"]
4217pub type P008PfsHa = crate::RegValueT<P008PfsHa_SPEC>;
4218
4219impl P008PfsHa {
4220    #[doc = "Port Output Data"]
4221    #[inline(always)]
4222    pub fn podr(
4223        self,
4224    ) -> crate::common::RegisterField<
4225        0,
4226        0x1,
4227        1,
4228        0,
4229        p008pfs_ha::Podr,
4230        p008pfs_ha::Podr,
4231        P008PfsHa_SPEC,
4232        crate::common::RW,
4233    > {
4234        crate::common::RegisterField::<
4235            0,
4236            0x1,
4237            1,
4238            0,
4239            p008pfs_ha::Podr,
4240            p008pfs_ha::Podr,
4241            P008PfsHa_SPEC,
4242            crate::common::RW,
4243        >::from_register(self, 0)
4244    }
4245
4246    #[doc = "Port State"]
4247    #[inline(always)]
4248    pub fn pidr(
4249        self,
4250    ) -> crate::common::RegisterField<
4251        1,
4252        0x1,
4253        1,
4254        0,
4255        p008pfs_ha::Pidr,
4256        p008pfs_ha::Pidr,
4257        P008PfsHa_SPEC,
4258        crate::common::R,
4259    > {
4260        crate::common::RegisterField::<
4261            1,
4262            0x1,
4263            1,
4264            0,
4265            p008pfs_ha::Pidr,
4266            p008pfs_ha::Pidr,
4267            P008PfsHa_SPEC,
4268            crate::common::R,
4269        >::from_register(self, 0)
4270    }
4271
4272    #[doc = "Port Direction"]
4273    #[inline(always)]
4274    pub fn pdr(
4275        self,
4276    ) -> crate::common::RegisterField<
4277        2,
4278        0x1,
4279        1,
4280        0,
4281        p008pfs_ha::Pdr,
4282        p008pfs_ha::Pdr,
4283        P008PfsHa_SPEC,
4284        crate::common::RW,
4285    > {
4286        crate::common::RegisterField::<
4287            2,
4288            0x1,
4289            1,
4290            0,
4291            p008pfs_ha::Pdr,
4292            p008pfs_ha::Pdr,
4293            P008PfsHa_SPEC,
4294            crate::common::RW,
4295        >::from_register(self, 0)
4296    }
4297
4298    #[doc = "Pull-up Control"]
4299    #[inline(always)]
4300    pub fn pcr(
4301        self,
4302    ) -> crate::common::RegisterField<
4303        4,
4304        0x1,
4305        1,
4306        0,
4307        p008pfs_ha::Pcr,
4308        p008pfs_ha::Pcr,
4309        P008PfsHa_SPEC,
4310        crate::common::RW,
4311    > {
4312        crate::common::RegisterField::<
4313            4,
4314            0x1,
4315            1,
4316            0,
4317            p008pfs_ha::Pcr,
4318            p008pfs_ha::Pcr,
4319            P008PfsHa_SPEC,
4320            crate::common::RW,
4321        >::from_register(self, 0)
4322    }
4323
4324    #[doc = "N-Channel Open-Drain Control"]
4325    #[inline(always)]
4326    pub fn ncodr(
4327        self,
4328    ) -> crate::common::RegisterField<
4329        6,
4330        0x1,
4331        1,
4332        0,
4333        p008pfs_ha::Ncodr,
4334        p008pfs_ha::Ncodr,
4335        P008PfsHa_SPEC,
4336        crate::common::RW,
4337    > {
4338        crate::common::RegisterField::<
4339            6,
4340            0x1,
4341            1,
4342            0,
4343            p008pfs_ha::Ncodr,
4344            p008pfs_ha::Ncodr,
4345            P008PfsHa_SPEC,
4346            crate::common::RW,
4347        >::from_register(self, 0)
4348    }
4349
4350    #[doc = "Port Drive Capability"]
4351    #[inline(always)]
4352    pub fn dscr(
4353        self,
4354    ) -> crate::common::RegisterField<
4355        10,
4356        0x3,
4357        1,
4358        0,
4359        p008pfs_ha::Dscr,
4360        p008pfs_ha::Dscr,
4361        P008PfsHa_SPEC,
4362        crate::common::RW,
4363    > {
4364        crate::common::RegisterField::<
4365            10,
4366            0x3,
4367            1,
4368            0,
4369            p008pfs_ha::Dscr,
4370            p008pfs_ha::Dscr,
4371            P008PfsHa_SPEC,
4372            crate::common::RW,
4373        >::from_register(self, 0)
4374    }
4375
4376    #[doc = "Event on Falling/Event on Rising"]
4377    #[inline(always)]
4378    pub fn eofr(
4379        self,
4380    ) -> crate::common::RegisterField<
4381        12,
4382        0x3,
4383        1,
4384        0,
4385        p008pfs_ha::Eofr,
4386        p008pfs_ha::Eofr,
4387        P008PfsHa_SPEC,
4388        crate::common::RW,
4389    > {
4390        crate::common::RegisterField::<
4391            12,
4392            0x3,
4393            1,
4394            0,
4395            p008pfs_ha::Eofr,
4396            p008pfs_ha::Eofr,
4397            P008PfsHa_SPEC,
4398            crate::common::RW,
4399        >::from_register(self, 0)
4400    }
4401
4402    #[doc = "IRQ Input Enable"]
4403    #[inline(always)]
4404    pub fn isel(
4405        self,
4406    ) -> crate::common::RegisterField<
4407        14,
4408        0x1,
4409        1,
4410        0,
4411        p008pfs_ha::Isel,
4412        p008pfs_ha::Isel,
4413        P008PfsHa_SPEC,
4414        crate::common::RW,
4415    > {
4416        crate::common::RegisterField::<
4417            14,
4418            0x1,
4419            1,
4420            0,
4421            p008pfs_ha::Isel,
4422            p008pfs_ha::Isel,
4423            P008PfsHa_SPEC,
4424            crate::common::RW,
4425        >::from_register(self, 0)
4426    }
4427
4428    #[doc = "Analog Input Enable"]
4429    #[inline(always)]
4430    pub fn asel(
4431        self,
4432    ) -> crate::common::RegisterField<
4433        15,
4434        0x1,
4435        1,
4436        0,
4437        p008pfs_ha::Asel,
4438        p008pfs_ha::Asel,
4439        P008PfsHa_SPEC,
4440        crate::common::RW,
4441    > {
4442        crate::common::RegisterField::<
4443            15,
4444            0x1,
4445            1,
4446            0,
4447            p008pfs_ha::Asel,
4448            p008pfs_ha::Asel,
4449            P008PfsHa_SPEC,
4450            crate::common::RW,
4451        >::from_register(self, 0)
4452    }
4453}
4454impl ::core::default::Default for P008PfsHa {
4455    #[inline(always)]
4456    fn default() -> P008PfsHa {
4457        <crate::RegValueT<P008PfsHa_SPEC> as RegisterValue<_>>::new(1040)
4458    }
4459}
4460pub mod p008pfs_ha {
4461
4462    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4463    pub struct Podr_SPEC;
4464    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4465    impl Podr {
4466        #[doc = "Output low"]
4467        pub const _0: Self = Self::new(0);
4468
4469        #[doc = "Output high"]
4470        pub const _1: Self = Self::new(1);
4471    }
4472    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4473    pub struct Pidr_SPEC;
4474    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4475    impl Pidr {
4476        #[doc = "Low level"]
4477        pub const _0: Self = Self::new(0);
4478
4479        #[doc = "High level"]
4480        pub const _1: Self = Self::new(1);
4481    }
4482    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4483    pub struct Pdr_SPEC;
4484    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4485    impl Pdr {
4486        #[doc = "Input (functions as an input pin)"]
4487        pub const _0: Self = Self::new(0);
4488
4489        #[doc = "Output (functions as an output pin)"]
4490        pub const _1: Self = Self::new(1);
4491    }
4492    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4493    pub struct Pcr_SPEC;
4494    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4495    impl Pcr {
4496        #[doc = "Disable input pull-up"]
4497        pub const _0: Self = Self::new(0);
4498
4499        #[doc = "Enable input pull-up"]
4500        pub const _1: Self = Self::new(1);
4501    }
4502    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4503    pub struct Ncodr_SPEC;
4504    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4505    impl Ncodr {
4506        #[doc = "Output CMOS"]
4507        pub const _0: Self = Self::new(0);
4508
4509        #[doc = "Output NMOS open-drain"]
4510        pub const _1: Self = Self::new(1);
4511    }
4512    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4513    pub struct Dscr_SPEC;
4514    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
4515    impl Dscr {
4516        #[doc = "Low drive"]
4517        pub const _00: Self = Self::new(0);
4518
4519        #[doc = "Middle drive"]
4520        pub const _01: Self = Self::new(1);
4521
4522        #[doc = "Setting prohibited"]
4523        pub const _10: Self = Self::new(2);
4524
4525        #[doc = "High drive"]
4526        pub const _11: Self = Self::new(3);
4527    }
4528    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4529    pub struct Eofr_SPEC;
4530    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
4531    impl Eofr {
4532        #[doc = "Don\'t care"]
4533        pub const _00: Self = Self::new(0);
4534
4535        #[doc = "Detect rising edge"]
4536        pub const _01: Self = Self::new(1);
4537
4538        #[doc = "Detect falling edge"]
4539        pub const _10: Self = Self::new(2);
4540
4541        #[doc = "Detect both edges"]
4542        pub const _11: Self = Self::new(3);
4543    }
4544    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4545    pub struct Isel_SPEC;
4546    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
4547    impl Isel {
4548        #[doc = "Do not use as IRQn input pin"]
4549        pub const _0: Self = Self::new(0);
4550
4551        #[doc = "Use as IRQn input pin"]
4552        pub const _1: Self = Self::new(1);
4553    }
4554    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4555    pub struct Asel_SPEC;
4556    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
4557    impl Asel {
4558        #[doc = "Do not use as analog pin"]
4559        pub const _0: Self = Self::new(0);
4560
4561        #[doc = "Use as analog pin"]
4562        pub const _1: Self = Self::new(1);
4563    }
4564}
4565#[doc(hidden)]
4566#[derive(Copy, Clone, Eq, PartialEq)]
4567pub struct P008PfsBy_SPEC;
4568impl crate::sealed::RegSpec for P008PfsBy_SPEC {
4569    type DataType = u8;
4570}
4571
4572#[doc = "Port 008 Pin Function Select Register"]
4573pub type P008PfsBy = crate::RegValueT<P008PfsBy_SPEC>;
4574
4575impl P008PfsBy {
4576    #[doc = "Port Output Data"]
4577    #[inline(always)]
4578    pub fn podr(
4579        self,
4580    ) -> crate::common::RegisterField<
4581        0,
4582        0x1,
4583        1,
4584        0,
4585        p008pfs_by::Podr,
4586        p008pfs_by::Podr,
4587        P008PfsBy_SPEC,
4588        crate::common::RW,
4589    > {
4590        crate::common::RegisterField::<
4591            0,
4592            0x1,
4593            1,
4594            0,
4595            p008pfs_by::Podr,
4596            p008pfs_by::Podr,
4597            P008PfsBy_SPEC,
4598            crate::common::RW,
4599        >::from_register(self, 0)
4600    }
4601
4602    #[doc = "Port State"]
4603    #[inline(always)]
4604    pub fn pidr(
4605        self,
4606    ) -> crate::common::RegisterField<
4607        1,
4608        0x1,
4609        1,
4610        0,
4611        p008pfs_by::Pidr,
4612        p008pfs_by::Pidr,
4613        P008PfsBy_SPEC,
4614        crate::common::R,
4615    > {
4616        crate::common::RegisterField::<
4617            1,
4618            0x1,
4619            1,
4620            0,
4621            p008pfs_by::Pidr,
4622            p008pfs_by::Pidr,
4623            P008PfsBy_SPEC,
4624            crate::common::R,
4625        >::from_register(self, 0)
4626    }
4627
4628    #[doc = "Port Direction"]
4629    #[inline(always)]
4630    pub fn pdr(
4631        self,
4632    ) -> crate::common::RegisterField<
4633        2,
4634        0x1,
4635        1,
4636        0,
4637        p008pfs_by::Pdr,
4638        p008pfs_by::Pdr,
4639        P008PfsBy_SPEC,
4640        crate::common::RW,
4641    > {
4642        crate::common::RegisterField::<
4643            2,
4644            0x1,
4645            1,
4646            0,
4647            p008pfs_by::Pdr,
4648            p008pfs_by::Pdr,
4649            P008PfsBy_SPEC,
4650            crate::common::RW,
4651        >::from_register(self, 0)
4652    }
4653
4654    #[doc = "Pull-up Control"]
4655    #[inline(always)]
4656    pub fn pcr(
4657        self,
4658    ) -> crate::common::RegisterField<
4659        4,
4660        0x1,
4661        1,
4662        0,
4663        p008pfs_by::Pcr,
4664        p008pfs_by::Pcr,
4665        P008PfsBy_SPEC,
4666        crate::common::RW,
4667    > {
4668        crate::common::RegisterField::<
4669            4,
4670            0x1,
4671            1,
4672            0,
4673            p008pfs_by::Pcr,
4674            p008pfs_by::Pcr,
4675            P008PfsBy_SPEC,
4676            crate::common::RW,
4677        >::from_register(self, 0)
4678    }
4679
4680    #[doc = "N-Channel Open-Drain Control"]
4681    #[inline(always)]
4682    pub fn ncodr(
4683        self,
4684    ) -> crate::common::RegisterField<
4685        6,
4686        0x1,
4687        1,
4688        0,
4689        p008pfs_by::Ncodr,
4690        p008pfs_by::Ncodr,
4691        P008PfsBy_SPEC,
4692        crate::common::RW,
4693    > {
4694        crate::common::RegisterField::<
4695            6,
4696            0x1,
4697            1,
4698            0,
4699            p008pfs_by::Ncodr,
4700            p008pfs_by::Ncodr,
4701            P008PfsBy_SPEC,
4702            crate::common::RW,
4703        >::from_register(self, 0)
4704    }
4705}
4706impl ::core::default::Default for P008PfsBy {
4707    #[inline(always)]
4708    fn default() -> P008PfsBy {
4709        <crate::RegValueT<P008PfsBy_SPEC> as RegisterValue<_>>::new(16)
4710    }
4711}
4712pub mod p008pfs_by {
4713
4714    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4715    pub struct Podr_SPEC;
4716    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4717    impl Podr {
4718        #[doc = "Output low"]
4719        pub const _0: Self = Self::new(0);
4720
4721        #[doc = "Output high"]
4722        pub const _1: Self = Self::new(1);
4723    }
4724    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4725    pub struct Pidr_SPEC;
4726    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4727    impl Pidr {
4728        #[doc = "Low level"]
4729        pub const _0: Self = Self::new(0);
4730
4731        #[doc = "High level"]
4732        pub const _1: Self = Self::new(1);
4733    }
4734    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4735    pub struct Pdr_SPEC;
4736    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4737    impl Pdr {
4738        #[doc = "Input (functions as an input pin)"]
4739        pub const _0: Self = Self::new(0);
4740
4741        #[doc = "Output (functions as an output pin)"]
4742        pub const _1: Self = Self::new(1);
4743    }
4744    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4745    pub struct Pcr_SPEC;
4746    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4747    impl Pcr {
4748        #[doc = "Disable input pull-up"]
4749        pub const _0: Self = Self::new(0);
4750
4751        #[doc = "Enable input pull-up"]
4752        pub const _1: Self = Self::new(1);
4753    }
4754    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4755    pub struct Ncodr_SPEC;
4756    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4757    impl Ncodr {
4758        #[doc = "Output CMOS"]
4759        pub const _0: Self = Self::new(0);
4760
4761        #[doc = "Output NMOS open-drain"]
4762        pub const _1: Self = Self::new(1);
4763    }
4764}
4765#[doc(hidden)]
4766#[derive(Copy, Clone, Eq, PartialEq)]
4767pub struct P0Pfs_SPEC;
4768impl crate::sealed::RegSpec for P0Pfs_SPEC {
4769    type DataType = u32;
4770}
4771
4772#[doc = "Port 0%s Pin Function Select Register"]
4773pub type P0Pfs = crate::RegValueT<P0Pfs_SPEC>;
4774
4775impl P0Pfs {
4776    #[doc = "Port Output Data"]
4777    #[inline(always)]
4778    pub fn podr(
4779        self,
4780    ) -> crate::common::RegisterField<
4781        0,
4782        0x1,
4783        1,
4784        0,
4785        p0pfs::Podr,
4786        p0pfs::Podr,
4787        P0Pfs_SPEC,
4788        crate::common::RW,
4789    > {
4790        crate::common::RegisterField::<
4791            0,
4792            0x1,
4793            1,
4794            0,
4795            p0pfs::Podr,
4796            p0pfs::Podr,
4797            P0Pfs_SPEC,
4798            crate::common::RW,
4799        >::from_register(self, 0)
4800    }
4801
4802    #[doc = "Port State"]
4803    #[inline(always)]
4804    pub fn pidr(
4805        self,
4806    ) -> crate::common::RegisterField<
4807        1,
4808        0x1,
4809        1,
4810        0,
4811        p0pfs::Pidr,
4812        p0pfs::Pidr,
4813        P0Pfs_SPEC,
4814        crate::common::R,
4815    > {
4816        crate::common::RegisterField::<
4817            1,
4818            0x1,
4819            1,
4820            0,
4821            p0pfs::Pidr,
4822            p0pfs::Pidr,
4823            P0Pfs_SPEC,
4824            crate::common::R,
4825        >::from_register(self, 0)
4826    }
4827
4828    #[doc = "Port Direction"]
4829    #[inline(always)]
4830    pub fn pdr(
4831        self,
4832    ) -> crate::common::RegisterField<
4833        2,
4834        0x1,
4835        1,
4836        0,
4837        p0pfs::Pdr,
4838        p0pfs::Pdr,
4839        P0Pfs_SPEC,
4840        crate::common::RW,
4841    > {
4842        crate::common::RegisterField::<
4843            2,
4844            0x1,
4845            1,
4846            0,
4847            p0pfs::Pdr,
4848            p0pfs::Pdr,
4849            P0Pfs_SPEC,
4850            crate::common::RW,
4851        >::from_register(self, 0)
4852    }
4853
4854    #[doc = "Pull-up Control"]
4855    #[inline(always)]
4856    pub fn pcr(
4857        self,
4858    ) -> crate::common::RegisterField<
4859        4,
4860        0x1,
4861        1,
4862        0,
4863        p0pfs::Pcr,
4864        p0pfs::Pcr,
4865        P0Pfs_SPEC,
4866        crate::common::RW,
4867    > {
4868        crate::common::RegisterField::<
4869            4,
4870            0x1,
4871            1,
4872            0,
4873            p0pfs::Pcr,
4874            p0pfs::Pcr,
4875            P0Pfs_SPEC,
4876            crate::common::RW,
4877        >::from_register(self, 0)
4878    }
4879
4880    #[doc = "N-Channel Open-Drain Control"]
4881    #[inline(always)]
4882    pub fn ncodr(
4883        self,
4884    ) -> crate::common::RegisterField<
4885        6,
4886        0x1,
4887        1,
4888        0,
4889        p0pfs::Ncodr,
4890        p0pfs::Ncodr,
4891        P0Pfs_SPEC,
4892        crate::common::RW,
4893    > {
4894        crate::common::RegisterField::<
4895            6,
4896            0x1,
4897            1,
4898            0,
4899            p0pfs::Ncodr,
4900            p0pfs::Ncodr,
4901            P0Pfs_SPEC,
4902            crate::common::RW,
4903        >::from_register(self, 0)
4904    }
4905
4906    #[doc = "Port Drive Capability"]
4907    #[inline(always)]
4908    pub fn dscr(
4909        self,
4910    ) -> crate::common::RegisterField<
4911        10,
4912        0x3,
4913        1,
4914        0,
4915        p0pfs::Dscr,
4916        p0pfs::Dscr,
4917        P0Pfs_SPEC,
4918        crate::common::RW,
4919    > {
4920        crate::common::RegisterField::<
4921            10,
4922            0x3,
4923            1,
4924            0,
4925            p0pfs::Dscr,
4926            p0pfs::Dscr,
4927            P0Pfs_SPEC,
4928            crate::common::RW,
4929        >::from_register(self, 0)
4930    }
4931
4932    #[doc = "Event on Falling/Event on Rising"]
4933    #[inline(always)]
4934    pub fn eofr(
4935        self,
4936    ) -> crate::common::RegisterField<
4937        12,
4938        0x3,
4939        1,
4940        0,
4941        p0pfs::Eofr,
4942        p0pfs::Eofr,
4943        P0Pfs_SPEC,
4944        crate::common::RW,
4945    > {
4946        crate::common::RegisterField::<
4947            12,
4948            0x3,
4949            1,
4950            0,
4951            p0pfs::Eofr,
4952            p0pfs::Eofr,
4953            P0Pfs_SPEC,
4954            crate::common::RW,
4955        >::from_register(self, 0)
4956    }
4957
4958    #[doc = "IRQ Input Enable"]
4959    #[inline(always)]
4960    pub fn isel(
4961        self,
4962    ) -> crate::common::RegisterField<
4963        14,
4964        0x1,
4965        1,
4966        0,
4967        p0pfs::Isel,
4968        p0pfs::Isel,
4969        P0Pfs_SPEC,
4970        crate::common::RW,
4971    > {
4972        crate::common::RegisterField::<
4973            14,
4974            0x1,
4975            1,
4976            0,
4977            p0pfs::Isel,
4978            p0pfs::Isel,
4979            P0Pfs_SPEC,
4980            crate::common::RW,
4981        >::from_register(self, 0)
4982    }
4983
4984    #[doc = "Analog Input Enable"]
4985    #[inline(always)]
4986    pub fn asel(
4987        self,
4988    ) -> crate::common::RegisterField<
4989        15,
4990        0x1,
4991        1,
4992        0,
4993        p0pfs::Asel,
4994        p0pfs::Asel,
4995        P0Pfs_SPEC,
4996        crate::common::RW,
4997    > {
4998        crate::common::RegisterField::<
4999            15,
5000            0x1,
5001            1,
5002            0,
5003            p0pfs::Asel,
5004            p0pfs::Asel,
5005            P0Pfs_SPEC,
5006            crate::common::RW,
5007        >::from_register(self, 0)
5008    }
5009
5010    #[doc = "Port Mode Control"]
5011    #[inline(always)]
5012    pub fn pmr(
5013        self,
5014    ) -> crate::common::RegisterField<
5015        16,
5016        0x1,
5017        1,
5018        0,
5019        p0pfs::Pmr,
5020        p0pfs::Pmr,
5021        P0Pfs_SPEC,
5022        crate::common::RW,
5023    > {
5024        crate::common::RegisterField::<
5025            16,
5026            0x1,
5027            1,
5028            0,
5029            p0pfs::Pmr,
5030            p0pfs::Pmr,
5031            P0Pfs_SPEC,
5032            crate::common::RW,
5033        >::from_register(self, 0)
5034    }
5035
5036    #[doc = "Peripheral Select"]
5037    #[inline(always)]
5038    pub fn psel(
5039        self,
5040    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P0Pfs_SPEC, crate::common::RW> {
5041        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P0Pfs_SPEC,crate::common::RW>::from_register(self,0)
5042    }
5043}
5044impl ::core::default::Default for P0Pfs {
5045    #[inline(always)]
5046    fn default() -> P0Pfs {
5047        <crate::RegValueT<P0Pfs_SPEC> as RegisterValue<_>>::new(0)
5048    }
5049}
5050pub mod p0pfs {
5051
5052    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5053    pub struct Podr_SPEC;
5054    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
5055    impl Podr {
5056        #[doc = "Output low"]
5057        pub const _0: Self = Self::new(0);
5058
5059        #[doc = "Output high"]
5060        pub const _1: Self = Self::new(1);
5061    }
5062    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5063    pub struct Pidr_SPEC;
5064    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
5065    impl Pidr {
5066        #[doc = "Low level"]
5067        pub const _0: Self = Self::new(0);
5068
5069        #[doc = "High level"]
5070        pub const _1: Self = Self::new(1);
5071    }
5072    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5073    pub struct Pdr_SPEC;
5074    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
5075    impl Pdr {
5076        #[doc = "Input (functions as an input pin)"]
5077        pub const _0: Self = Self::new(0);
5078
5079        #[doc = "Output (functions as an output pin)"]
5080        pub const _1: Self = Self::new(1);
5081    }
5082    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5083    pub struct Pcr_SPEC;
5084    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
5085    impl Pcr {
5086        #[doc = "Disable input pull-up"]
5087        pub const _0: Self = Self::new(0);
5088
5089        #[doc = "Enable input pull-up"]
5090        pub const _1: Self = Self::new(1);
5091    }
5092    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5093    pub struct Ncodr_SPEC;
5094    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
5095    impl Ncodr {
5096        #[doc = "Output CMOS"]
5097        pub const _0: Self = Self::new(0);
5098
5099        #[doc = "Output NMOS open-drain"]
5100        pub const _1: Self = Self::new(1);
5101    }
5102    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5103    pub struct Dscr_SPEC;
5104    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
5105    impl Dscr {
5106        #[doc = "Low drive"]
5107        pub const _00: Self = Self::new(0);
5108
5109        #[doc = "Middle drive"]
5110        pub const _01: Self = Self::new(1);
5111
5112        #[doc = "Setting prohibited"]
5113        pub const _10: Self = Self::new(2);
5114
5115        #[doc = "High drive"]
5116        pub const _11: Self = Self::new(3);
5117    }
5118    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5119    pub struct Eofr_SPEC;
5120    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
5121    impl Eofr {
5122        #[doc = "Don\'t care"]
5123        pub const _00: Self = Self::new(0);
5124
5125        #[doc = "Detect rising edge"]
5126        pub const _01: Self = Self::new(1);
5127
5128        #[doc = "Detect falling edge"]
5129        pub const _10: Self = Self::new(2);
5130
5131        #[doc = "Detect both edges"]
5132        pub const _11: Self = Self::new(3);
5133    }
5134    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5135    pub struct Isel_SPEC;
5136    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
5137    impl Isel {
5138        #[doc = "Do not use as IRQn input pin"]
5139        pub const _0: Self = Self::new(0);
5140
5141        #[doc = "Use as IRQn input pin"]
5142        pub const _1: Self = Self::new(1);
5143    }
5144    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5145    pub struct Asel_SPEC;
5146    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
5147    impl Asel {
5148        #[doc = "Do not use as analog pin"]
5149        pub const _0: Self = Self::new(0);
5150
5151        #[doc = "Use as analog pin"]
5152        pub const _1: Self = Self::new(1);
5153    }
5154    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5155    pub struct Pmr_SPEC;
5156    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
5157    impl Pmr {
5158        #[doc = "Use as general I/O pin"]
5159        pub const _0: Self = Self::new(0);
5160
5161        #[doc = "Use as I/O port for peripheral functions"]
5162        pub const _1: Self = Self::new(1);
5163    }
5164}
5165#[doc(hidden)]
5166#[derive(Copy, Clone, Eq, PartialEq)]
5167pub struct P0PfsHa_SPEC;
5168impl crate::sealed::RegSpec for P0PfsHa_SPEC {
5169    type DataType = u16;
5170}
5171
5172#[doc = "Port 0%s Pin Function Select Register"]
5173pub type P0PfsHa = crate::RegValueT<P0PfsHa_SPEC>;
5174
5175impl P0PfsHa {
5176    #[doc = "Port Output Data"]
5177    #[inline(always)]
5178    pub fn podr(
5179        self,
5180    ) -> crate::common::RegisterField<
5181        0,
5182        0x1,
5183        1,
5184        0,
5185        p0pfs_ha::Podr,
5186        p0pfs_ha::Podr,
5187        P0PfsHa_SPEC,
5188        crate::common::RW,
5189    > {
5190        crate::common::RegisterField::<
5191            0,
5192            0x1,
5193            1,
5194            0,
5195            p0pfs_ha::Podr,
5196            p0pfs_ha::Podr,
5197            P0PfsHa_SPEC,
5198            crate::common::RW,
5199        >::from_register(self, 0)
5200    }
5201
5202    #[doc = "Port State"]
5203    #[inline(always)]
5204    pub fn pidr(
5205        self,
5206    ) -> crate::common::RegisterField<
5207        1,
5208        0x1,
5209        1,
5210        0,
5211        p0pfs_ha::Pidr,
5212        p0pfs_ha::Pidr,
5213        P0PfsHa_SPEC,
5214        crate::common::R,
5215    > {
5216        crate::common::RegisterField::<
5217            1,
5218            0x1,
5219            1,
5220            0,
5221            p0pfs_ha::Pidr,
5222            p0pfs_ha::Pidr,
5223            P0PfsHa_SPEC,
5224            crate::common::R,
5225        >::from_register(self, 0)
5226    }
5227
5228    #[doc = "Port Direction"]
5229    #[inline(always)]
5230    pub fn pdr(
5231        self,
5232    ) -> crate::common::RegisterField<
5233        2,
5234        0x1,
5235        1,
5236        0,
5237        p0pfs_ha::Pdr,
5238        p0pfs_ha::Pdr,
5239        P0PfsHa_SPEC,
5240        crate::common::RW,
5241    > {
5242        crate::common::RegisterField::<
5243            2,
5244            0x1,
5245            1,
5246            0,
5247            p0pfs_ha::Pdr,
5248            p0pfs_ha::Pdr,
5249            P0PfsHa_SPEC,
5250            crate::common::RW,
5251        >::from_register(self, 0)
5252    }
5253
5254    #[doc = "Pull-up Control"]
5255    #[inline(always)]
5256    pub fn pcr(
5257        self,
5258    ) -> crate::common::RegisterField<
5259        4,
5260        0x1,
5261        1,
5262        0,
5263        p0pfs_ha::Pcr,
5264        p0pfs_ha::Pcr,
5265        P0PfsHa_SPEC,
5266        crate::common::RW,
5267    > {
5268        crate::common::RegisterField::<
5269            4,
5270            0x1,
5271            1,
5272            0,
5273            p0pfs_ha::Pcr,
5274            p0pfs_ha::Pcr,
5275            P0PfsHa_SPEC,
5276            crate::common::RW,
5277        >::from_register(self, 0)
5278    }
5279
5280    #[doc = "N-Channel Open-Drain Control"]
5281    #[inline(always)]
5282    pub fn ncodr(
5283        self,
5284    ) -> crate::common::RegisterField<
5285        6,
5286        0x1,
5287        1,
5288        0,
5289        p0pfs_ha::Ncodr,
5290        p0pfs_ha::Ncodr,
5291        P0PfsHa_SPEC,
5292        crate::common::RW,
5293    > {
5294        crate::common::RegisterField::<
5295            6,
5296            0x1,
5297            1,
5298            0,
5299            p0pfs_ha::Ncodr,
5300            p0pfs_ha::Ncodr,
5301            P0PfsHa_SPEC,
5302            crate::common::RW,
5303        >::from_register(self, 0)
5304    }
5305
5306    #[doc = "Port Drive Capability"]
5307    #[inline(always)]
5308    pub fn dscr(
5309        self,
5310    ) -> crate::common::RegisterField<
5311        10,
5312        0x3,
5313        1,
5314        0,
5315        p0pfs_ha::Dscr,
5316        p0pfs_ha::Dscr,
5317        P0PfsHa_SPEC,
5318        crate::common::RW,
5319    > {
5320        crate::common::RegisterField::<
5321            10,
5322            0x3,
5323            1,
5324            0,
5325            p0pfs_ha::Dscr,
5326            p0pfs_ha::Dscr,
5327            P0PfsHa_SPEC,
5328            crate::common::RW,
5329        >::from_register(self, 0)
5330    }
5331
5332    #[doc = "Event on Falling/Event on Rising"]
5333    #[inline(always)]
5334    pub fn eofr(
5335        self,
5336    ) -> crate::common::RegisterField<
5337        12,
5338        0x3,
5339        1,
5340        0,
5341        p0pfs_ha::Eofr,
5342        p0pfs_ha::Eofr,
5343        P0PfsHa_SPEC,
5344        crate::common::RW,
5345    > {
5346        crate::common::RegisterField::<
5347            12,
5348            0x3,
5349            1,
5350            0,
5351            p0pfs_ha::Eofr,
5352            p0pfs_ha::Eofr,
5353            P0PfsHa_SPEC,
5354            crate::common::RW,
5355        >::from_register(self, 0)
5356    }
5357
5358    #[doc = "IRQ Input Enable"]
5359    #[inline(always)]
5360    pub fn isel(
5361        self,
5362    ) -> crate::common::RegisterField<
5363        14,
5364        0x1,
5365        1,
5366        0,
5367        p0pfs_ha::Isel,
5368        p0pfs_ha::Isel,
5369        P0PfsHa_SPEC,
5370        crate::common::RW,
5371    > {
5372        crate::common::RegisterField::<
5373            14,
5374            0x1,
5375            1,
5376            0,
5377            p0pfs_ha::Isel,
5378            p0pfs_ha::Isel,
5379            P0PfsHa_SPEC,
5380            crate::common::RW,
5381        >::from_register(self, 0)
5382    }
5383
5384    #[doc = "Analog Input Enable"]
5385    #[inline(always)]
5386    pub fn asel(
5387        self,
5388    ) -> crate::common::RegisterField<
5389        15,
5390        0x1,
5391        1,
5392        0,
5393        p0pfs_ha::Asel,
5394        p0pfs_ha::Asel,
5395        P0PfsHa_SPEC,
5396        crate::common::RW,
5397    > {
5398        crate::common::RegisterField::<
5399            15,
5400            0x1,
5401            1,
5402            0,
5403            p0pfs_ha::Asel,
5404            p0pfs_ha::Asel,
5405            P0PfsHa_SPEC,
5406            crate::common::RW,
5407        >::from_register(self, 0)
5408    }
5409}
5410impl ::core::default::Default for P0PfsHa {
5411    #[inline(always)]
5412    fn default() -> P0PfsHa {
5413        <crate::RegValueT<P0PfsHa_SPEC> as RegisterValue<_>>::new(0)
5414    }
5415}
5416pub mod p0pfs_ha {
5417
5418    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5419    pub struct Podr_SPEC;
5420    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
5421    impl Podr {
5422        #[doc = "Output low"]
5423        pub const _0: Self = Self::new(0);
5424
5425        #[doc = "Output high"]
5426        pub const _1: Self = Self::new(1);
5427    }
5428    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5429    pub struct Pidr_SPEC;
5430    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
5431    impl Pidr {
5432        #[doc = "Low level"]
5433        pub const _0: Self = Self::new(0);
5434
5435        #[doc = "High level"]
5436        pub const _1: Self = Self::new(1);
5437    }
5438    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5439    pub struct Pdr_SPEC;
5440    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
5441    impl Pdr {
5442        #[doc = "Input (functions as an input pin)"]
5443        pub const _0: Self = Self::new(0);
5444
5445        #[doc = "Output (functions as an output pin)"]
5446        pub const _1: Self = Self::new(1);
5447    }
5448    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5449    pub struct Pcr_SPEC;
5450    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
5451    impl Pcr {
5452        #[doc = "Disable input pull-up"]
5453        pub const _0: Self = Self::new(0);
5454
5455        #[doc = "Enable input pull-up"]
5456        pub const _1: Self = Self::new(1);
5457    }
5458    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5459    pub struct Ncodr_SPEC;
5460    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
5461    impl Ncodr {
5462        #[doc = "Output CMOS"]
5463        pub const _0: Self = Self::new(0);
5464
5465        #[doc = "Output NMOS open-drain"]
5466        pub const _1: Self = Self::new(1);
5467    }
5468    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5469    pub struct Dscr_SPEC;
5470    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
5471    impl Dscr {
5472        #[doc = "Low drive"]
5473        pub const _00: Self = Self::new(0);
5474
5475        #[doc = "Middle drive"]
5476        pub const _01: Self = Self::new(1);
5477
5478        #[doc = "Setting prohibited"]
5479        pub const _10: Self = Self::new(2);
5480
5481        #[doc = "High drive"]
5482        pub const _11: Self = Self::new(3);
5483    }
5484    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5485    pub struct Eofr_SPEC;
5486    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
5487    impl Eofr {
5488        #[doc = "Don\'t care"]
5489        pub const _00: Self = Self::new(0);
5490
5491        #[doc = "Detect rising edge"]
5492        pub const _01: Self = Self::new(1);
5493
5494        #[doc = "Detect falling edge"]
5495        pub const _10: Self = Self::new(2);
5496
5497        #[doc = "Detect both edges"]
5498        pub const _11: Self = Self::new(3);
5499    }
5500    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5501    pub struct Isel_SPEC;
5502    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
5503    impl Isel {
5504        #[doc = "Do not use as IRQn input pin"]
5505        pub const _0: Self = Self::new(0);
5506
5507        #[doc = "Use as IRQn input pin"]
5508        pub const _1: Self = Self::new(1);
5509    }
5510    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5511    pub struct Asel_SPEC;
5512    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
5513    impl Asel {
5514        #[doc = "Do not use as analog pin"]
5515        pub const _0: Self = Self::new(0);
5516
5517        #[doc = "Use as analog pin"]
5518        pub const _1: Self = Self::new(1);
5519    }
5520}
5521#[doc(hidden)]
5522#[derive(Copy, Clone, Eq, PartialEq)]
5523pub struct P0PfsBy_SPEC;
5524impl crate::sealed::RegSpec for P0PfsBy_SPEC {
5525    type DataType = u8;
5526}
5527
5528#[doc = "Port 0%s Pin Function Select Register"]
5529pub type P0PfsBy = crate::RegValueT<P0PfsBy_SPEC>;
5530
5531impl P0PfsBy {
5532    #[doc = "Port Output Data"]
5533    #[inline(always)]
5534    pub fn podr(
5535        self,
5536    ) -> crate::common::RegisterField<
5537        0,
5538        0x1,
5539        1,
5540        0,
5541        p0pfs_by::Podr,
5542        p0pfs_by::Podr,
5543        P0PfsBy_SPEC,
5544        crate::common::RW,
5545    > {
5546        crate::common::RegisterField::<
5547            0,
5548            0x1,
5549            1,
5550            0,
5551            p0pfs_by::Podr,
5552            p0pfs_by::Podr,
5553            P0PfsBy_SPEC,
5554            crate::common::RW,
5555        >::from_register(self, 0)
5556    }
5557
5558    #[doc = "Port State"]
5559    #[inline(always)]
5560    pub fn pidr(
5561        self,
5562    ) -> crate::common::RegisterField<
5563        1,
5564        0x1,
5565        1,
5566        0,
5567        p0pfs_by::Pidr,
5568        p0pfs_by::Pidr,
5569        P0PfsBy_SPEC,
5570        crate::common::R,
5571    > {
5572        crate::common::RegisterField::<
5573            1,
5574            0x1,
5575            1,
5576            0,
5577            p0pfs_by::Pidr,
5578            p0pfs_by::Pidr,
5579            P0PfsBy_SPEC,
5580            crate::common::R,
5581        >::from_register(self, 0)
5582    }
5583
5584    #[doc = "Port Direction"]
5585    #[inline(always)]
5586    pub fn pdr(
5587        self,
5588    ) -> crate::common::RegisterField<
5589        2,
5590        0x1,
5591        1,
5592        0,
5593        p0pfs_by::Pdr,
5594        p0pfs_by::Pdr,
5595        P0PfsBy_SPEC,
5596        crate::common::RW,
5597    > {
5598        crate::common::RegisterField::<
5599            2,
5600            0x1,
5601            1,
5602            0,
5603            p0pfs_by::Pdr,
5604            p0pfs_by::Pdr,
5605            P0PfsBy_SPEC,
5606            crate::common::RW,
5607        >::from_register(self, 0)
5608    }
5609
5610    #[doc = "Pull-up Control"]
5611    #[inline(always)]
5612    pub fn pcr(
5613        self,
5614    ) -> crate::common::RegisterField<
5615        4,
5616        0x1,
5617        1,
5618        0,
5619        p0pfs_by::Pcr,
5620        p0pfs_by::Pcr,
5621        P0PfsBy_SPEC,
5622        crate::common::RW,
5623    > {
5624        crate::common::RegisterField::<
5625            4,
5626            0x1,
5627            1,
5628            0,
5629            p0pfs_by::Pcr,
5630            p0pfs_by::Pcr,
5631            P0PfsBy_SPEC,
5632            crate::common::RW,
5633        >::from_register(self, 0)
5634    }
5635
5636    #[doc = "N-Channel Open-Drain Control"]
5637    #[inline(always)]
5638    pub fn ncodr(
5639        self,
5640    ) -> crate::common::RegisterField<
5641        6,
5642        0x1,
5643        1,
5644        0,
5645        p0pfs_by::Ncodr,
5646        p0pfs_by::Ncodr,
5647        P0PfsBy_SPEC,
5648        crate::common::RW,
5649    > {
5650        crate::common::RegisterField::<
5651            6,
5652            0x1,
5653            1,
5654            0,
5655            p0pfs_by::Ncodr,
5656            p0pfs_by::Ncodr,
5657            P0PfsBy_SPEC,
5658            crate::common::RW,
5659        >::from_register(self, 0)
5660    }
5661}
5662impl ::core::default::Default for P0PfsBy {
5663    #[inline(always)]
5664    fn default() -> P0PfsBy {
5665        <crate::RegValueT<P0PfsBy_SPEC> as RegisterValue<_>>::new(0)
5666    }
5667}
5668pub mod p0pfs_by {
5669
5670    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5671    pub struct Podr_SPEC;
5672    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
5673    impl Podr {
5674        #[doc = "Output low"]
5675        pub const _0: Self = Self::new(0);
5676
5677        #[doc = "Output high"]
5678        pub const _1: Self = Self::new(1);
5679    }
5680    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5681    pub struct Pidr_SPEC;
5682    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
5683    impl Pidr {
5684        #[doc = "Low level"]
5685        pub const _0: Self = Self::new(0);
5686
5687        #[doc = "High level"]
5688        pub const _1: Self = Self::new(1);
5689    }
5690    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5691    pub struct Pdr_SPEC;
5692    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
5693    impl Pdr {
5694        #[doc = "Input (functions as an input pin)"]
5695        pub const _0: Self = Self::new(0);
5696
5697        #[doc = "Output (functions as an output pin)"]
5698        pub const _1: Self = Self::new(1);
5699    }
5700    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5701    pub struct Pcr_SPEC;
5702    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
5703    impl Pcr {
5704        #[doc = "Disable input pull-up"]
5705        pub const _0: Self = Self::new(0);
5706
5707        #[doc = "Enable input pull-up"]
5708        pub const _1: Self = Self::new(1);
5709    }
5710    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5711    pub struct Ncodr_SPEC;
5712    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
5713    impl Ncodr {
5714        #[doc = "Output CMOS"]
5715        pub const _0: Self = Self::new(0);
5716
5717        #[doc = "Output NMOS open-drain"]
5718        pub const _1: Self = Self::new(1);
5719    }
5720}
5721#[doc(hidden)]
5722#[derive(Copy, Clone, Eq, PartialEq)]
5723pub struct P10Pfs_SPEC;
5724impl crate::sealed::RegSpec for P10Pfs_SPEC {
5725    type DataType = u32;
5726}
5727
5728#[doc = "Port 10%s Pin Function Select Register"]
5729pub type P10Pfs = crate::RegValueT<P10Pfs_SPEC>;
5730
5731impl P10Pfs {
5732    #[doc = "Port Output Data"]
5733    #[inline(always)]
5734    pub fn podr(
5735        self,
5736    ) -> crate::common::RegisterField<
5737        0,
5738        0x1,
5739        1,
5740        0,
5741        p10pfs::Podr,
5742        p10pfs::Podr,
5743        P10Pfs_SPEC,
5744        crate::common::RW,
5745    > {
5746        crate::common::RegisterField::<
5747            0,
5748            0x1,
5749            1,
5750            0,
5751            p10pfs::Podr,
5752            p10pfs::Podr,
5753            P10Pfs_SPEC,
5754            crate::common::RW,
5755        >::from_register(self, 0)
5756    }
5757
5758    #[doc = "Port State"]
5759    #[inline(always)]
5760    pub fn pidr(
5761        self,
5762    ) -> crate::common::RegisterField<
5763        1,
5764        0x1,
5765        1,
5766        0,
5767        p10pfs::Pidr,
5768        p10pfs::Pidr,
5769        P10Pfs_SPEC,
5770        crate::common::R,
5771    > {
5772        crate::common::RegisterField::<
5773            1,
5774            0x1,
5775            1,
5776            0,
5777            p10pfs::Pidr,
5778            p10pfs::Pidr,
5779            P10Pfs_SPEC,
5780            crate::common::R,
5781        >::from_register(self, 0)
5782    }
5783
5784    #[doc = "Port Direction"]
5785    #[inline(always)]
5786    pub fn pdr(
5787        self,
5788    ) -> crate::common::RegisterField<
5789        2,
5790        0x1,
5791        1,
5792        0,
5793        p10pfs::Pdr,
5794        p10pfs::Pdr,
5795        P10Pfs_SPEC,
5796        crate::common::RW,
5797    > {
5798        crate::common::RegisterField::<
5799            2,
5800            0x1,
5801            1,
5802            0,
5803            p10pfs::Pdr,
5804            p10pfs::Pdr,
5805            P10Pfs_SPEC,
5806            crate::common::RW,
5807        >::from_register(self, 0)
5808    }
5809
5810    #[doc = "Pull-up Control"]
5811    #[inline(always)]
5812    pub fn pcr(
5813        self,
5814    ) -> crate::common::RegisterField<
5815        4,
5816        0x1,
5817        1,
5818        0,
5819        p10pfs::Pcr,
5820        p10pfs::Pcr,
5821        P10Pfs_SPEC,
5822        crate::common::RW,
5823    > {
5824        crate::common::RegisterField::<
5825            4,
5826            0x1,
5827            1,
5828            0,
5829            p10pfs::Pcr,
5830            p10pfs::Pcr,
5831            P10Pfs_SPEC,
5832            crate::common::RW,
5833        >::from_register(self, 0)
5834    }
5835
5836    #[doc = "N-Channel Open-Drain Control"]
5837    #[inline(always)]
5838    pub fn ncodr(
5839        self,
5840    ) -> crate::common::RegisterField<
5841        6,
5842        0x1,
5843        1,
5844        0,
5845        p10pfs::Ncodr,
5846        p10pfs::Ncodr,
5847        P10Pfs_SPEC,
5848        crate::common::RW,
5849    > {
5850        crate::common::RegisterField::<
5851            6,
5852            0x1,
5853            1,
5854            0,
5855            p10pfs::Ncodr,
5856            p10pfs::Ncodr,
5857            P10Pfs_SPEC,
5858            crate::common::RW,
5859        >::from_register(self, 0)
5860    }
5861
5862    #[doc = "Port Drive Capability"]
5863    #[inline(always)]
5864    pub fn dscr(
5865        self,
5866    ) -> crate::common::RegisterField<
5867        10,
5868        0x3,
5869        1,
5870        0,
5871        p10pfs::Dscr,
5872        p10pfs::Dscr,
5873        P10Pfs_SPEC,
5874        crate::common::RW,
5875    > {
5876        crate::common::RegisterField::<
5877            10,
5878            0x3,
5879            1,
5880            0,
5881            p10pfs::Dscr,
5882            p10pfs::Dscr,
5883            P10Pfs_SPEC,
5884            crate::common::RW,
5885        >::from_register(self, 0)
5886    }
5887
5888    #[doc = "Event on Falling/Event on Rising"]
5889    #[inline(always)]
5890    pub fn eofr(
5891        self,
5892    ) -> crate::common::RegisterField<
5893        12,
5894        0x3,
5895        1,
5896        0,
5897        p10pfs::Eofr,
5898        p10pfs::Eofr,
5899        P10Pfs_SPEC,
5900        crate::common::RW,
5901    > {
5902        crate::common::RegisterField::<
5903            12,
5904            0x3,
5905            1,
5906            0,
5907            p10pfs::Eofr,
5908            p10pfs::Eofr,
5909            P10Pfs_SPEC,
5910            crate::common::RW,
5911        >::from_register(self, 0)
5912    }
5913
5914    #[doc = "IRQ Input Enable"]
5915    #[inline(always)]
5916    pub fn isel(
5917        self,
5918    ) -> crate::common::RegisterField<
5919        14,
5920        0x1,
5921        1,
5922        0,
5923        p10pfs::Isel,
5924        p10pfs::Isel,
5925        P10Pfs_SPEC,
5926        crate::common::RW,
5927    > {
5928        crate::common::RegisterField::<
5929            14,
5930            0x1,
5931            1,
5932            0,
5933            p10pfs::Isel,
5934            p10pfs::Isel,
5935            P10Pfs_SPEC,
5936            crate::common::RW,
5937        >::from_register(self, 0)
5938    }
5939
5940    #[doc = "Analog Input Enable"]
5941    #[inline(always)]
5942    pub fn asel(
5943        self,
5944    ) -> crate::common::RegisterField<
5945        15,
5946        0x1,
5947        1,
5948        0,
5949        p10pfs::Asel,
5950        p10pfs::Asel,
5951        P10Pfs_SPEC,
5952        crate::common::RW,
5953    > {
5954        crate::common::RegisterField::<
5955            15,
5956            0x1,
5957            1,
5958            0,
5959            p10pfs::Asel,
5960            p10pfs::Asel,
5961            P10Pfs_SPEC,
5962            crate::common::RW,
5963        >::from_register(self, 0)
5964    }
5965
5966    #[doc = "Port Mode Control"]
5967    #[inline(always)]
5968    pub fn pmr(
5969        self,
5970    ) -> crate::common::RegisterField<
5971        16,
5972        0x1,
5973        1,
5974        0,
5975        p10pfs::Pmr,
5976        p10pfs::Pmr,
5977        P10Pfs_SPEC,
5978        crate::common::RW,
5979    > {
5980        crate::common::RegisterField::<
5981            16,
5982            0x1,
5983            1,
5984            0,
5985            p10pfs::Pmr,
5986            p10pfs::Pmr,
5987            P10Pfs_SPEC,
5988            crate::common::RW,
5989        >::from_register(self, 0)
5990    }
5991
5992    #[doc = "Peripheral Select"]
5993    #[inline(always)]
5994    pub fn psel(
5995        self,
5996    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P10Pfs_SPEC, crate::common::RW> {
5997        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P10Pfs_SPEC,crate::common::RW>::from_register(self,0)
5998    }
5999}
6000impl ::core::default::Default for P10Pfs {
6001    #[inline(always)]
6002    fn default() -> P10Pfs {
6003        <crate::RegValueT<P10Pfs_SPEC> as RegisterValue<_>>::new(0)
6004    }
6005}
6006pub mod p10pfs {
6007
6008    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6009    pub struct Podr_SPEC;
6010    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6011    impl Podr {
6012        #[doc = "Output low"]
6013        pub const _0: Self = Self::new(0);
6014
6015        #[doc = "Output high"]
6016        pub const _1: Self = Self::new(1);
6017    }
6018    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6019    pub struct Pidr_SPEC;
6020    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6021    impl Pidr {
6022        #[doc = "Low level"]
6023        pub const _0: Self = Self::new(0);
6024
6025        #[doc = "High level"]
6026        pub const _1: Self = Self::new(1);
6027    }
6028    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6029    pub struct Pdr_SPEC;
6030    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6031    impl Pdr {
6032        #[doc = "Input (functions as an input pin)"]
6033        pub const _0: Self = Self::new(0);
6034
6035        #[doc = "Output (functions as an output pin)"]
6036        pub const _1: Self = Self::new(1);
6037    }
6038    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6039    pub struct Pcr_SPEC;
6040    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6041    impl Pcr {
6042        #[doc = "Disable input pull-up"]
6043        pub const _0: Self = Self::new(0);
6044
6045        #[doc = "Enable input pull-up"]
6046        pub const _1: Self = Self::new(1);
6047    }
6048    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6049    pub struct Ncodr_SPEC;
6050    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6051    impl Ncodr {
6052        #[doc = "Output CMOS"]
6053        pub const _0: Self = Self::new(0);
6054
6055        #[doc = "Output NMOS open-drain"]
6056        pub const _1: Self = Self::new(1);
6057    }
6058    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6059    pub struct Dscr_SPEC;
6060    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
6061    impl Dscr {
6062        #[doc = "Low drive"]
6063        pub const _00: Self = Self::new(0);
6064
6065        #[doc = "Middle drive"]
6066        pub const _01: Self = Self::new(1);
6067
6068        #[doc = "Setting prohibited"]
6069        pub const _10: Self = Self::new(2);
6070
6071        #[doc = "High drive"]
6072        pub const _11: Self = Self::new(3);
6073    }
6074    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6075    pub struct Eofr_SPEC;
6076    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
6077    impl Eofr {
6078        #[doc = "Don\'t care"]
6079        pub const _00: Self = Self::new(0);
6080
6081        #[doc = "Detect rising edge"]
6082        pub const _01: Self = Self::new(1);
6083
6084        #[doc = "Detect falling edge"]
6085        pub const _10: Self = Self::new(2);
6086
6087        #[doc = "Detect both edges"]
6088        pub const _11: Self = Self::new(3);
6089    }
6090    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6091    pub struct Isel_SPEC;
6092    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
6093    impl Isel {
6094        #[doc = "Do not use as IRQn input pin"]
6095        pub const _0: Self = Self::new(0);
6096
6097        #[doc = "Use as IRQn input pin"]
6098        pub const _1: Self = Self::new(1);
6099    }
6100    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6101    pub struct Asel_SPEC;
6102    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
6103    impl Asel {
6104        #[doc = "Do not use as analog pin"]
6105        pub const _0: Self = Self::new(0);
6106
6107        #[doc = "Use as analog pin"]
6108        pub const _1: Self = Self::new(1);
6109    }
6110    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6111    pub struct Pmr_SPEC;
6112    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
6113    impl Pmr {
6114        #[doc = "Use as general I/O pin"]
6115        pub const _0: Self = Self::new(0);
6116
6117        #[doc = "Use as I/O port for peripheral functions"]
6118        pub const _1: Self = Self::new(1);
6119    }
6120}
6121#[doc(hidden)]
6122#[derive(Copy, Clone, Eq, PartialEq)]
6123pub struct P10PfsHa_SPEC;
6124impl crate::sealed::RegSpec for P10PfsHa_SPEC {
6125    type DataType = u16;
6126}
6127
6128#[doc = "Port 10%s Pin Function Select Register"]
6129pub type P10PfsHa = crate::RegValueT<P10PfsHa_SPEC>;
6130
6131impl P10PfsHa {
6132    #[doc = "Port Output Data"]
6133    #[inline(always)]
6134    pub fn podr(
6135        self,
6136    ) -> crate::common::RegisterField<
6137        0,
6138        0x1,
6139        1,
6140        0,
6141        p10pfs_ha::Podr,
6142        p10pfs_ha::Podr,
6143        P10PfsHa_SPEC,
6144        crate::common::RW,
6145    > {
6146        crate::common::RegisterField::<
6147            0,
6148            0x1,
6149            1,
6150            0,
6151            p10pfs_ha::Podr,
6152            p10pfs_ha::Podr,
6153            P10PfsHa_SPEC,
6154            crate::common::RW,
6155        >::from_register(self, 0)
6156    }
6157
6158    #[doc = "Port State"]
6159    #[inline(always)]
6160    pub fn pidr(
6161        self,
6162    ) -> crate::common::RegisterField<
6163        1,
6164        0x1,
6165        1,
6166        0,
6167        p10pfs_ha::Pidr,
6168        p10pfs_ha::Pidr,
6169        P10PfsHa_SPEC,
6170        crate::common::R,
6171    > {
6172        crate::common::RegisterField::<
6173            1,
6174            0x1,
6175            1,
6176            0,
6177            p10pfs_ha::Pidr,
6178            p10pfs_ha::Pidr,
6179            P10PfsHa_SPEC,
6180            crate::common::R,
6181        >::from_register(self, 0)
6182    }
6183
6184    #[doc = "Port Direction"]
6185    #[inline(always)]
6186    pub fn pdr(
6187        self,
6188    ) -> crate::common::RegisterField<
6189        2,
6190        0x1,
6191        1,
6192        0,
6193        p10pfs_ha::Pdr,
6194        p10pfs_ha::Pdr,
6195        P10PfsHa_SPEC,
6196        crate::common::RW,
6197    > {
6198        crate::common::RegisterField::<
6199            2,
6200            0x1,
6201            1,
6202            0,
6203            p10pfs_ha::Pdr,
6204            p10pfs_ha::Pdr,
6205            P10PfsHa_SPEC,
6206            crate::common::RW,
6207        >::from_register(self, 0)
6208    }
6209
6210    #[doc = "Pull-up Control"]
6211    #[inline(always)]
6212    pub fn pcr(
6213        self,
6214    ) -> crate::common::RegisterField<
6215        4,
6216        0x1,
6217        1,
6218        0,
6219        p10pfs_ha::Pcr,
6220        p10pfs_ha::Pcr,
6221        P10PfsHa_SPEC,
6222        crate::common::RW,
6223    > {
6224        crate::common::RegisterField::<
6225            4,
6226            0x1,
6227            1,
6228            0,
6229            p10pfs_ha::Pcr,
6230            p10pfs_ha::Pcr,
6231            P10PfsHa_SPEC,
6232            crate::common::RW,
6233        >::from_register(self, 0)
6234    }
6235
6236    #[doc = "N-Channel Open-Drain Control"]
6237    #[inline(always)]
6238    pub fn ncodr(
6239        self,
6240    ) -> crate::common::RegisterField<
6241        6,
6242        0x1,
6243        1,
6244        0,
6245        p10pfs_ha::Ncodr,
6246        p10pfs_ha::Ncodr,
6247        P10PfsHa_SPEC,
6248        crate::common::RW,
6249    > {
6250        crate::common::RegisterField::<
6251            6,
6252            0x1,
6253            1,
6254            0,
6255            p10pfs_ha::Ncodr,
6256            p10pfs_ha::Ncodr,
6257            P10PfsHa_SPEC,
6258            crate::common::RW,
6259        >::from_register(self, 0)
6260    }
6261
6262    #[doc = "Port Drive Capability"]
6263    #[inline(always)]
6264    pub fn dscr(
6265        self,
6266    ) -> crate::common::RegisterField<
6267        10,
6268        0x3,
6269        1,
6270        0,
6271        p10pfs_ha::Dscr,
6272        p10pfs_ha::Dscr,
6273        P10PfsHa_SPEC,
6274        crate::common::RW,
6275    > {
6276        crate::common::RegisterField::<
6277            10,
6278            0x3,
6279            1,
6280            0,
6281            p10pfs_ha::Dscr,
6282            p10pfs_ha::Dscr,
6283            P10PfsHa_SPEC,
6284            crate::common::RW,
6285        >::from_register(self, 0)
6286    }
6287
6288    #[doc = "Event on Falling/Event on Rising"]
6289    #[inline(always)]
6290    pub fn eofr(
6291        self,
6292    ) -> crate::common::RegisterField<
6293        12,
6294        0x3,
6295        1,
6296        0,
6297        p10pfs_ha::Eofr,
6298        p10pfs_ha::Eofr,
6299        P10PfsHa_SPEC,
6300        crate::common::RW,
6301    > {
6302        crate::common::RegisterField::<
6303            12,
6304            0x3,
6305            1,
6306            0,
6307            p10pfs_ha::Eofr,
6308            p10pfs_ha::Eofr,
6309            P10PfsHa_SPEC,
6310            crate::common::RW,
6311        >::from_register(self, 0)
6312    }
6313
6314    #[doc = "IRQ Input Enable"]
6315    #[inline(always)]
6316    pub fn isel(
6317        self,
6318    ) -> crate::common::RegisterField<
6319        14,
6320        0x1,
6321        1,
6322        0,
6323        p10pfs_ha::Isel,
6324        p10pfs_ha::Isel,
6325        P10PfsHa_SPEC,
6326        crate::common::RW,
6327    > {
6328        crate::common::RegisterField::<
6329            14,
6330            0x1,
6331            1,
6332            0,
6333            p10pfs_ha::Isel,
6334            p10pfs_ha::Isel,
6335            P10PfsHa_SPEC,
6336            crate::common::RW,
6337        >::from_register(self, 0)
6338    }
6339
6340    #[doc = "Analog Input Enable"]
6341    #[inline(always)]
6342    pub fn asel(
6343        self,
6344    ) -> crate::common::RegisterField<
6345        15,
6346        0x1,
6347        1,
6348        0,
6349        p10pfs_ha::Asel,
6350        p10pfs_ha::Asel,
6351        P10PfsHa_SPEC,
6352        crate::common::RW,
6353    > {
6354        crate::common::RegisterField::<
6355            15,
6356            0x1,
6357            1,
6358            0,
6359            p10pfs_ha::Asel,
6360            p10pfs_ha::Asel,
6361            P10PfsHa_SPEC,
6362            crate::common::RW,
6363        >::from_register(self, 0)
6364    }
6365}
6366impl ::core::default::Default for P10PfsHa {
6367    #[inline(always)]
6368    fn default() -> P10PfsHa {
6369        <crate::RegValueT<P10PfsHa_SPEC> as RegisterValue<_>>::new(0)
6370    }
6371}
6372pub mod p10pfs_ha {
6373
6374    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6375    pub struct Podr_SPEC;
6376    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6377    impl Podr {
6378        #[doc = "Output low"]
6379        pub const _0: Self = Self::new(0);
6380
6381        #[doc = "Output high"]
6382        pub const _1: Self = Self::new(1);
6383    }
6384    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6385    pub struct Pidr_SPEC;
6386    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6387    impl Pidr {
6388        #[doc = "Low level"]
6389        pub const _0: Self = Self::new(0);
6390
6391        #[doc = "High level"]
6392        pub const _1: Self = Self::new(1);
6393    }
6394    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6395    pub struct Pdr_SPEC;
6396    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6397    impl Pdr {
6398        #[doc = "Input (functions as an input pin)"]
6399        pub const _0: Self = Self::new(0);
6400
6401        #[doc = "Output (functions as an output pin)"]
6402        pub const _1: Self = Self::new(1);
6403    }
6404    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6405    pub struct Pcr_SPEC;
6406    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6407    impl Pcr {
6408        #[doc = "Disable input pull-up"]
6409        pub const _0: Self = Self::new(0);
6410
6411        #[doc = "Enable input pull-up"]
6412        pub const _1: Self = Self::new(1);
6413    }
6414    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6415    pub struct Ncodr_SPEC;
6416    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6417    impl Ncodr {
6418        #[doc = "Output CMOS"]
6419        pub const _0: Self = Self::new(0);
6420
6421        #[doc = "Output NMOS open-drain"]
6422        pub const _1: Self = Self::new(1);
6423    }
6424    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6425    pub struct Dscr_SPEC;
6426    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
6427    impl Dscr {
6428        #[doc = "Low drive"]
6429        pub const _00: Self = Self::new(0);
6430
6431        #[doc = "Middle drive"]
6432        pub const _01: Self = Self::new(1);
6433
6434        #[doc = "Setting prohibited"]
6435        pub const _10: Self = Self::new(2);
6436
6437        #[doc = "High drive"]
6438        pub const _11: Self = Self::new(3);
6439    }
6440    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6441    pub struct Eofr_SPEC;
6442    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
6443    impl Eofr {
6444        #[doc = "Don\'t care"]
6445        pub const _00: Self = Self::new(0);
6446
6447        #[doc = "Detect rising edge"]
6448        pub const _01: Self = Self::new(1);
6449
6450        #[doc = "Detect falling edge"]
6451        pub const _10: Self = Self::new(2);
6452
6453        #[doc = "Detect both edges"]
6454        pub const _11: Self = Self::new(3);
6455    }
6456    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6457    pub struct Isel_SPEC;
6458    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
6459    impl Isel {
6460        #[doc = "Do not use as IRQn input pin"]
6461        pub const _0: Self = Self::new(0);
6462
6463        #[doc = "Use as IRQn input pin"]
6464        pub const _1: Self = Self::new(1);
6465    }
6466    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6467    pub struct Asel_SPEC;
6468    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
6469    impl Asel {
6470        #[doc = "Do not use as analog pin"]
6471        pub const _0: Self = Self::new(0);
6472
6473        #[doc = "Use as analog pin"]
6474        pub const _1: Self = Self::new(1);
6475    }
6476}
6477#[doc(hidden)]
6478#[derive(Copy, Clone, Eq, PartialEq)]
6479pub struct P10PfsBy_SPEC;
6480impl crate::sealed::RegSpec for P10PfsBy_SPEC {
6481    type DataType = u8;
6482}
6483
6484#[doc = "Port 10%s Pin Function Select Register"]
6485pub type P10PfsBy = crate::RegValueT<P10PfsBy_SPEC>;
6486
6487impl P10PfsBy {
6488    #[doc = "Port Output Data"]
6489    #[inline(always)]
6490    pub fn podr(
6491        self,
6492    ) -> crate::common::RegisterField<
6493        0,
6494        0x1,
6495        1,
6496        0,
6497        p10pfs_by::Podr,
6498        p10pfs_by::Podr,
6499        P10PfsBy_SPEC,
6500        crate::common::RW,
6501    > {
6502        crate::common::RegisterField::<
6503            0,
6504            0x1,
6505            1,
6506            0,
6507            p10pfs_by::Podr,
6508            p10pfs_by::Podr,
6509            P10PfsBy_SPEC,
6510            crate::common::RW,
6511        >::from_register(self, 0)
6512    }
6513
6514    #[doc = "Port State"]
6515    #[inline(always)]
6516    pub fn pidr(
6517        self,
6518    ) -> crate::common::RegisterField<
6519        1,
6520        0x1,
6521        1,
6522        0,
6523        p10pfs_by::Pidr,
6524        p10pfs_by::Pidr,
6525        P10PfsBy_SPEC,
6526        crate::common::R,
6527    > {
6528        crate::common::RegisterField::<
6529            1,
6530            0x1,
6531            1,
6532            0,
6533            p10pfs_by::Pidr,
6534            p10pfs_by::Pidr,
6535            P10PfsBy_SPEC,
6536            crate::common::R,
6537        >::from_register(self, 0)
6538    }
6539
6540    #[doc = "Port Direction"]
6541    #[inline(always)]
6542    pub fn pdr(
6543        self,
6544    ) -> crate::common::RegisterField<
6545        2,
6546        0x1,
6547        1,
6548        0,
6549        p10pfs_by::Pdr,
6550        p10pfs_by::Pdr,
6551        P10PfsBy_SPEC,
6552        crate::common::RW,
6553    > {
6554        crate::common::RegisterField::<
6555            2,
6556            0x1,
6557            1,
6558            0,
6559            p10pfs_by::Pdr,
6560            p10pfs_by::Pdr,
6561            P10PfsBy_SPEC,
6562            crate::common::RW,
6563        >::from_register(self, 0)
6564    }
6565
6566    #[doc = "Pull-up Control"]
6567    #[inline(always)]
6568    pub fn pcr(
6569        self,
6570    ) -> crate::common::RegisterField<
6571        4,
6572        0x1,
6573        1,
6574        0,
6575        p10pfs_by::Pcr,
6576        p10pfs_by::Pcr,
6577        P10PfsBy_SPEC,
6578        crate::common::RW,
6579    > {
6580        crate::common::RegisterField::<
6581            4,
6582            0x1,
6583            1,
6584            0,
6585            p10pfs_by::Pcr,
6586            p10pfs_by::Pcr,
6587            P10PfsBy_SPEC,
6588            crate::common::RW,
6589        >::from_register(self, 0)
6590    }
6591
6592    #[doc = "N-Channel Open-Drain Control"]
6593    #[inline(always)]
6594    pub fn ncodr(
6595        self,
6596    ) -> crate::common::RegisterField<
6597        6,
6598        0x1,
6599        1,
6600        0,
6601        p10pfs_by::Ncodr,
6602        p10pfs_by::Ncodr,
6603        P10PfsBy_SPEC,
6604        crate::common::RW,
6605    > {
6606        crate::common::RegisterField::<
6607            6,
6608            0x1,
6609            1,
6610            0,
6611            p10pfs_by::Ncodr,
6612            p10pfs_by::Ncodr,
6613            P10PfsBy_SPEC,
6614            crate::common::RW,
6615        >::from_register(self, 0)
6616    }
6617}
6618impl ::core::default::Default for P10PfsBy {
6619    #[inline(always)]
6620    fn default() -> P10PfsBy {
6621        <crate::RegValueT<P10PfsBy_SPEC> as RegisterValue<_>>::new(0)
6622    }
6623}
6624pub mod p10pfs_by {
6625
6626    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6627    pub struct Podr_SPEC;
6628    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6629    impl Podr {
6630        #[doc = "Output low"]
6631        pub const _0: Self = Self::new(0);
6632
6633        #[doc = "Output high"]
6634        pub const _1: Self = Self::new(1);
6635    }
6636    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6637    pub struct Pidr_SPEC;
6638    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6639    impl Pidr {
6640        #[doc = "Low level"]
6641        pub const _0: Self = Self::new(0);
6642
6643        #[doc = "High level"]
6644        pub const _1: Self = Self::new(1);
6645    }
6646    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6647    pub struct Pdr_SPEC;
6648    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6649    impl Pdr {
6650        #[doc = "Input (functions as an input pin)"]
6651        pub const _0: Self = Self::new(0);
6652
6653        #[doc = "Output (functions as an output pin)"]
6654        pub const _1: Self = Self::new(1);
6655    }
6656    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6657    pub struct Pcr_SPEC;
6658    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6659    impl Pcr {
6660        #[doc = "Disable input pull-up"]
6661        pub const _0: Self = Self::new(0);
6662
6663        #[doc = "Enable input pull-up"]
6664        pub const _1: Self = Self::new(1);
6665    }
6666    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6667    pub struct Ncodr_SPEC;
6668    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6669    impl Ncodr {
6670        #[doc = "Output CMOS"]
6671        pub const _0: Self = Self::new(0);
6672
6673        #[doc = "Output NMOS open-drain"]
6674        pub const _1: Self = Self::new(1);
6675    }
6676}
6677#[doc(hidden)]
6678#[derive(Copy, Clone, Eq, PartialEq)]
6679pub struct P1Pfs_SPEC;
6680impl crate::sealed::RegSpec for P1Pfs_SPEC {
6681    type DataType = u32;
6682}
6683
6684#[doc = "Port 1%s Pin Function Select Register"]
6685pub type P1Pfs = crate::RegValueT<P1Pfs_SPEC>;
6686
6687impl P1Pfs {
6688    #[doc = "Port Output Data"]
6689    #[inline(always)]
6690    pub fn podr(
6691        self,
6692    ) -> crate::common::RegisterField<
6693        0,
6694        0x1,
6695        1,
6696        0,
6697        p1pfs::Podr,
6698        p1pfs::Podr,
6699        P1Pfs_SPEC,
6700        crate::common::RW,
6701    > {
6702        crate::common::RegisterField::<
6703            0,
6704            0x1,
6705            1,
6706            0,
6707            p1pfs::Podr,
6708            p1pfs::Podr,
6709            P1Pfs_SPEC,
6710            crate::common::RW,
6711        >::from_register(self, 0)
6712    }
6713
6714    #[doc = "Port State"]
6715    #[inline(always)]
6716    pub fn pidr(
6717        self,
6718    ) -> crate::common::RegisterField<
6719        1,
6720        0x1,
6721        1,
6722        0,
6723        p1pfs::Pidr,
6724        p1pfs::Pidr,
6725        P1Pfs_SPEC,
6726        crate::common::R,
6727    > {
6728        crate::common::RegisterField::<
6729            1,
6730            0x1,
6731            1,
6732            0,
6733            p1pfs::Pidr,
6734            p1pfs::Pidr,
6735            P1Pfs_SPEC,
6736            crate::common::R,
6737        >::from_register(self, 0)
6738    }
6739
6740    #[doc = "Port Direction"]
6741    #[inline(always)]
6742    pub fn pdr(
6743        self,
6744    ) -> crate::common::RegisterField<
6745        2,
6746        0x1,
6747        1,
6748        0,
6749        p1pfs::Pdr,
6750        p1pfs::Pdr,
6751        P1Pfs_SPEC,
6752        crate::common::RW,
6753    > {
6754        crate::common::RegisterField::<
6755            2,
6756            0x1,
6757            1,
6758            0,
6759            p1pfs::Pdr,
6760            p1pfs::Pdr,
6761            P1Pfs_SPEC,
6762            crate::common::RW,
6763        >::from_register(self, 0)
6764    }
6765
6766    #[doc = "Pull-up Control"]
6767    #[inline(always)]
6768    pub fn pcr(
6769        self,
6770    ) -> crate::common::RegisterField<
6771        4,
6772        0x1,
6773        1,
6774        0,
6775        p1pfs::Pcr,
6776        p1pfs::Pcr,
6777        P1Pfs_SPEC,
6778        crate::common::RW,
6779    > {
6780        crate::common::RegisterField::<
6781            4,
6782            0x1,
6783            1,
6784            0,
6785            p1pfs::Pcr,
6786            p1pfs::Pcr,
6787            P1Pfs_SPEC,
6788            crate::common::RW,
6789        >::from_register(self, 0)
6790    }
6791
6792    #[doc = "N-Channel Open-Drain Control"]
6793    #[inline(always)]
6794    pub fn ncodr(
6795        self,
6796    ) -> crate::common::RegisterField<
6797        6,
6798        0x1,
6799        1,
6800        0,
6801        p1pfs::Ncodr,
6802        p1pfs::Ncodr,
6803        P1Pfs_SPEC,
6804        crate::common::RW,
6805    > {
6806        crate::common::RegisterField::<
6807            6,
6808            0x1,
6809            1,
6810            0,
6811            p1pfs::Ncodr,
6812            p1pfs::Ncodr,
6813            P1Pfs_SPEC,
6814            crate::common::RW,
6815        >::from_register(self, 0)
6816    }
6817
6818    #[doc = "Port Drive Capability"]
6819    #[inline(always)]
6820    pub fn dscr(
6821        self,
6822    ) -> crate::common::RegisterField<
6823        10,
6824        0x3,
6825        1,
6826        0,
6827        p1pfs::Dscr,
6828        p1pfs::Dscr,
6829        P1Pfs_SPEC,
6830        crate::common::RW,
6831    > {
6832        crate::common::RegisterField::<
6833            10,
6834            0x3,
6835            1,
6836            0,
6837            p1pfs::Dscr,
6838            p1pfs::Dscr,
6839            P1Pfs_SPEC,
6840            crate::common::RW,
6841        >::from_register(self, 0)
6842    }
6843
6844    #[doc = "Event on Falling/Event on Rising"]
6845    #[inline(always)]
6846    pub fn eofr(
6847        self,
6848    ) -> crate::common::RegisterField<
6849        12,
6850        0x3,
6851        1,
6852        0,
6853        p1pfs::Eofr,
6854        p1pfs::Eofr,
6855        P1Pfs_SPEC,
6856        crate::common::RW,
6857    > {
6858        crate::common::RegisterField::<
6859            12,
6860            0x3,
6861            1,
6862            0,
6863            p1pfs::Eofr,
6864            p1pfs::Eofr,
6865            P1Pfs_SPEC,
6866            crate::common::RW,
6867        >::from_register(self, 0)
6868    }
6869
6870    #[doc = "IRQ Input Enable"]
6871    #[inline(always)]
6872    pub fn isel(
6873        self,
6874    ) -> crate::common::RegisterField<
6875        14,
6876        0x1,
6877        1,
6878        0,
6879        p1pfs::Isel,
6880        p1pfs::Isel,
6881        P1Pfs_SPEC,
6882        crate::common::RW,
6883    > {
6884        crate::common::RegisterField::<
6885            14,
6886            0x1,
6887            1,
6888            0,
6889            p1pfs::Isel,
6890            p1pfs::Isel,
6891            P1Pfs_SPEC,
6892            crate::common::RW,
6893        >::from_register(self, 0)
6894    }
6895
6896    #[doc = "Analog Input Enable"]
6897    #[inline(always)]
6898    pub fn asel(
6899        self,
6900    ) -> crate::common::RegisterField<
6901        15,
6902        0x1,
6903        1,
6904        0,
6905        p1pfs::Asel,
6906        p1pfs::Asel,
6907        P1Pfs_SPEC,
6908        crate::common::RW,
6909    > {
6910        crate::common::RegisterField::<
6911            15,
6912            0x1,
6913            1,
6914            0,
6915            p1pfs::Asel,
6916            p1pfs::Asel,
6917            P1Pfs_SPEC,
6918            crate::common::RW,
6919        >::from_register(self, 0)
6920    }
6921
6922    #[doc = "Port Mode Control"]
6923    #[inline(always)]
6924    pub fn pmr(
6925        self,
6926    ) -> crate::common::RegisterField<
6927        16,
6928        0x1,
6929        1,
6930        0,
6931        p1pfs::Pmr,
6932        p1pfs::Pmr,
6933        P1Pfs_SPEC,
6934        crate::common::RW,
6935    > {
6936        crate::common::RegisterField::<
6937            16,
6938            0x1,
6939            1,
6940            0,
6941            p1pfs::Pmr,
6942            p1pfs::Pmr,
6943            P1Pfs_SPEC,
6944            crate::common::RW,
6945        >::from_register(self, 0)
6946    }
6947
6948    #[doc = "Peripheral Select"]
6949    #[inline(always)]
6950    pub fn psel(
6951        self,
6952    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P1Pfs_SPEC, crate::common::RW> {
6953        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P1Pfs_SPEC,crate::common::RW>::from_register(self,0)
6954    }
6955}
6956impl ::core::default::Default for P1Pfs {
6957    #[inline(always)]
6958    fn default() -> P1Pfs {
6959        <crate::RegValueT<P1Pfs_SPEC> as RegisterValue<_>>::new(0)
6960    }
6961}
6962pub mod p1pfs {
6963
6964    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6965    pub struct Podr_SPEC;
6966    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6967    impl Podr {
6968        #[doc = "Output low"]
6969        pub const _0: Self = Self::new(0);
6970
6971        #[doc = "Output high"]
6972        pub const _1: Self = Self::new(1);
6973    }
6974    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6975    pub struct Pidr_SPEC;
6976    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6977    impl Pidr {
6978        #[doc = "Low level"]
6979        pub const _0: Self = Self::new(0);
6980
6981        #[doc = "High level"]
6982        pub const _1: Self = Self::new(1);
6983    }
6984    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6985    pub struct Pdr_SPEC;
6986    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6987    impl Pdr {
6988        #[doc = "Input (functions as an input pin)"]
6989        pub const _0: Self = Self::new(0);
6990
6991        #[doc = "Output (functions as an output pin)"]
6992        pub const _1: Self = Self::new(1);
6993    }
6994    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6995    pub struct Pcr_SPEC;
6996    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6997    impl Pcr {
6998        #[doc = "Disable input pull-up"]
6999        pub const _0: Self = Self::new(0);
7000
7001        #[doc = "Enable input pull-up"]
7002        pub const _1: Self = Self::new(1);
7003    }
7004    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7005    pub struct Ncodr_SPEC;
7006    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
7007    impl Ncodr {
7008        #[doc = "Output CMOS"]
7009        pub const _0: Self = Self::new(0);
7010
7011        #[doc = "Output NMOS open-drain"]
7012        pub const _1: Self = Self::new(1);
7013    }
7014    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7015    pub struct Dscr_SPEC;
7016    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
7017    impl Dscr {
7018        #[doc = "Low drive"]
7019        pub const _00: Self = Self::new(0);
7020
7021        #[doc = "Middle drive"]
7022        pub const _01: Self = Self::new(1);
7023
7024        #[doc = "Setting prohibited"]
7025        pub const _10: Self = Self::new(2);
7026
7027        #[doc = "High drive"]
7028        pub const _11: Self = Self::new(3);
7029    }
7030    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7031    pub struct Eofr_SPEC;
7032    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
7033    impl Eofr {
7034        #[doc = "Don\'t care"]
7035        pub const _00: Self = Self::new(0);
7036
7037        #[doc = "Detect rising edge"]
7038        pub const _01: Self = Self::new(1);
7039
7040        #[doc = "Detect falling edge"]
7041        pub const _10: Self = Self::new(2);
7042
7043        #[doc = "Detect both edges"]
7044        pub const _11: Self = Self::new(3);
7045    }
7046    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7047    pub struct Isel_SPEC;
7048    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
7049    impl Isel {
7050        #[doc = "Do not use as IRQn input pin"]
7051        pub const _0: Self = Self::new(0);
7052
7053        #[doc = "Use as IRQn input pin"]
7054        pub const _1: Self = Self::new(1);
7055    }
7056    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7057    pub struct Asel_SPEC;
7058    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
7059    impl Asel {
7060        #[doc = "Do not use as analog pin"]
7061        pub const _0: Self = Self::new(0);
7062
7063        #[doc = "Use as analog pin"]
7064        pub const _1: Self = Self::new(1);
7065    }
7066    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7067    pub struct Pmr_SPEC;
7068    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
7069    impl Pmr {
7070        #[doc = "Use as general I/O pin"]
7071        pub const _0: Self = Self::new(0);
7072
7073        #[doc = "Use as I/O port for peripheral functions"]
7074        pub const _1: Self = Self::new(1);
7075    }
7076}
7077#[doc(hidden)]
7078#[derive(Copy, Clone, Eq, PartialEq)]
7079pub struct P1PfsHa_SPEC;
7080impl crate::sealed::RegSpec for P1PfsHa_SPEC {
7081    type DataType = u16;
7082}
7083
7084#[doc = "Port 1%s Pin Function Select Register"]
7085pub type P1PfsHa = crate::RegValueT<P1PfsHa_SPEC>;
7086
7087impl P1PfsHa {
7088    #[doc = "Port Output Data"]
7089    #[inline(always)]
7090    pub fn podr(
7091        self,
7092    ) -> crate::common::RegisterField<
7093        0,
7094        0x1,
7095        1,
7096        0,
7097        p1pfs_ha::Podr,
7098        p1pfs_ha::Podr,
7099        P1PfsHa_SPEC,
7100        crate::common::RW,
7101    > {
7102        crate::common::RegisterField::<
7103            0,
7104            0x1,
7105            1,
7106            0,
7107            p1pfs_ha::Podr,
7108            p1pfs_ha::Podr,
7109            P1PfsHa_SPEC,
7110            crate::common::RW,
7111        >::from_register(self, 0)
7112    }
7113
7114    #[doc = "Port State"]
7115    #[inline(always)]
7116    pub fn pidr(
7117        self,
7118    ) -> crate::common::RegisterField<
7119        1,
7120        0x1,
7121        1,
7122        0,
7123        p1pfs_ha::Pidr,
7124        p1pfs_ha::Pidr,
7125        P1PfsHa_SPEC,
7126        crate::common::R,
7127    > {
7128        crate::common::RegisterField::<
7129            1,
7130            0x1,
7131            1,
7132            0,
7133            p1pfs_ha::Pidr,
7134            p1pfs_ha::Pidr,
7135            P1PfsHa_SPEC,
7136            crate::common::R,
7137        >::from_register(self, 0)
7138    }
7139
7140    #[doc = "Port Direction"]
7141    #[inline(always)]
7142    pub fn pdr(
7143        self,
7144    ) -> crate::common::RegisterField<
7145        2,
7146        0x1,
7147        1,
7148        0,
7149        p1pfs_ha::Pdr,
7150        p1pfs_ha::Pdr,
7151        P1PfsHa_SPEC,
7152        crate::common::RW,
7153    > {
7154        crate::common::RegisterField::<
7155            2,
7156            0x1,
7157            1,
7158            0,
7159            p1pfs_ha::Pdr,
7160            p1pfs_ha::Pdr,
7161            P1PfsHa_SPEC,
7162            crate::common::RW,
7163        >::from_register(self, 0)
7164    }
7165
7166    #[doc = "Pull-up Control"]
7167    #[inline(always)]
7168    pub fn pcr(
7169        self,
7170    ) -> crate::common::RegisterField<
7171        4,
7172        0x1,
7173        1,
7174        0,
7175        p1pfs_ha::Pcr,
7176        p1pfs_ha::Pcr,
7177        P1PfsHa_SPEC,
7178        crate::common::RW,
7179    > {
7180        crate::common::RegisterField::<
7181            4,
7182            0x1,
7183            1,
7184            0,
7185            p1pfs_ha::Pcr,
7186            p1pfs_ha::Pcr,
7187            P1PfsHa_SPEC,
7188            crate::common::RW,
7189        >::from_register(self, 0)
7190    }
7191
7192    #[doc = "N-Channel Open-Drain Control"]
7193    #[inline(always)]
7194    pub fn ncodr(
7195        self,
7196    ) -> crate::common::RegisterField<
7197        6,
7198        0x1,
7199        1,
7200        0,
7201        p1pfs_ha::Ncodr,
7202        p1pfs_ha::Ncodr,
7203        P1PfsHa_SPEC,
7204        crate::common::RW,
7205    > {
7206        crate::common::RegisterField::<
7207            6,
7208            0x1,
7209            1,
7210            0,
7211            p1pfs_ha::Ncodr,
7212            p1pfs_ha::Ncodr,
7213            P1PfsHa_SPEC,
7214            crate::common::RW,
7215        >::from_register(self, 0)
7216    }
7217
7218    #[doc = "Port Drive Capability"]
7219    #[inline(always)]
7220    pub fn dscr(
7221        self,
7222    ) -> crate::common::RegisterField<
7223        10,
7224        0x3,
7225        1,
7226        0,
7227        p1pfs_ha::Dscr,
7228        p1pfs_ha::Dscr,
7229        P1PfsHa_SPEC,
7230        crate::common::RW,
7231    > {
7232        crate::common::RegisterField::<
7233            10,
7234            0x3,
7235            1,
7236            0,
7237            p1pfs_ha::Dscr,
7238            p1pfs_ha::Dscr,
7239            P1PfsHa_SPEC,
7240            crate::common::RW,
7241        >::from_register(self, 0)
7242    }
7243
7244    #[doc = "Event on Falling/Event on Rising"]
7245    #[inline(always)]
7246    pub fn eofr(
7247        self,
7248    ) -> crate::common::RegisterField<
7249        12,
7250        0x3,
7251        1,
7252        0,
7253        p1pfs_ha::Eofr,
7254        p1pfs_ha::Eofr,
7255        P1PfsHa_SPEC,
7256        crate::common::RW,
7257    > {
7258        crate::common::RegisterField::<
7259            12,
7260            0x3,
7261            1,
7262            0,
7263            p1pfs_ha::Eofr,
7264            p1pfs_ha::Eofr,
7265            P1PfsHa_SPEC,
7266            crate::common::RW,
7267        >::from_register(self, 0)
7268    }
7269
7270    #[doc = "IRQ Input Enable"]
7271    #[inline(always)]
7272    pub fn isel(
7273        self,
7274    ) -> crate::common::RegisterField<
7275        14,
7276        0x1,
7277        1,
7278        0,
7279        p1pfs_ha::Isel,
7280        p1pfs_ha::Isel,
7281        P1PfsHa_SPEC,
7282        crate::common::RW,
7283    > {
7284        crate::common::RegisterField::<
7285            14,
7286            0x1,
7287            1,
7288            0,
7289            p1pfs_ha::Isel,
7290            p1pfs_ha::Isel,
7291            P1PfsHa_SPEC,
7292            crate::common::RW,
7293        >::from_register(self, 0)
7294    }
7295
7296    #[doc = "Analog Input Enable"]
7297    #[inline(always)]
7298    pub fn asel(
7299        self,
7300    ) -> crate::common::RegisterField<
7301        15,
7302        0x1,
7303        1,
7304        0,
7305        p1pfs_ha::Asel,
7306        p1pfs_ha::Asel,
7307        P1PfsHa_SPEC,
7308        crate::common::RW,
7309    > {
7310        crate::common::RegisterField::<
7311            15,
7312            0x1,
7313            1,
7314            0,
7315            p1pfs_ha::Asel,
7316            p1pfs_ha::Asel,
7317            P1PfsHa_SPEC,
7318            crate::common::RW,
7319        >::from_register(self, 0)
7320    }
7321}
7322impl ::core::default::Default for P1PfsHa {
7323    #[inline(always)]
7324    fn default() -> P1PfsHa {
7325        <crate::RegValueT<P1PfsHa_SPEC> as RegisterValue<_>>::new(0)
7326    }
7327}
7328pub mod p1pfs_ha {
7329
7330    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7331    pub struct Podr_SPEC;
7332    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
7333    impl Podr {
7334        #[doc = "Output low"]
7335        pub const _0: Self = Self::new(0);
7336
7337        #[doc = "Output high"]
7338        pub const _1: Self = Self::new(1);
7339    }
7340    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7341    pub struct Pidr_SPEC;
7342    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
7343    impl Pidr {
7344        #[doc = "Low level"]
7345        pub const _0: Self = Self::new(0);
7346
7347        #[doc = "High level"]
7348        pub const _1: Self = Self::new(1);
7349    }
7350    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7351    pub struct Pdr_SPEC;
7352    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
7353    impl Pdr {
7354        #[doc = "Input (functions as an input pin)"]
7355        pub const _0: Self = Self::new(0);
7356
7357        #[doc = "Output (functions as an output pin)"]
7358        pub const _1: Self = Self::new(1);
7359    }
7360    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7361    pub struct Pcr_SPEC;
7362    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
7363    impl Pcr {
7364        #[doc = "Disable input pull-up"]
7365        pub const _0: Self = Self::new(0);
7366
7367        #[doc = "Enable input pull-up"]
7368        pub const _1: Self = Self::new(1);
7369    }
7370    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7371    pub struct Ncodr_SPEC;
7372    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
7373    impl Ncodr {
7374        #[doc = "Output CMOS"]
7375        pub const _0: Self = Self::new(0);
7376
7377        #[doc = "Output NMOS open-drain"]
7378        pub const _1: Self = Self::new(1);
7379    }
7380    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7381    pub struct Dscr_SPEC;
7382    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
7383    impl Dscr {
7384        #[doc = "Low drive"]
7385        pub const _00: Self = Self::new(0);
7386
7387        #[doc = "Middle drive"]
7388        pub const _01: Self = Self::new(1);
7389
7390        #[doc = "Setting prohibited"]
7391        pub const _10: Self = Self::new(2);
7392
7393        #[doc = "High drive"]
7394        pub const _11: Self = Self::new(3);
7395    }
7396    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7397    pub struct Eofr_SPEC;
7398    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
7399    impl Eofr {
7400        #[doc = "Don\'t care"]
7401        pub const _00: Self = Self::new(0);
7402
7403        #[doc = "Detect rising edge"]
7404        pub const _01: Self = Self::new(1);
7405
7406        #[doc = "Detect falling edge"]
7407        pub const _10: Self = Self::new(2);
7408
7409        #[doc = "Detect both edges"]
7410        pub const _11: Self = Self::new(3);
7411    }
7412    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7413    pub struct Isel_SPEC;
7414    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
7415    impl Isel {
7416        #[doc = "Do not use as IRQn input pin"]
7417        pub const _0: Self = Self::new(0);
7418
7419        #[doc = "Use as IRQn input pin"]
7420        pub const _1: Self = Self::new(1);
7421    }
7422    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7423    pub struct Asel_SPEC;
7424    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
7425    impl Asel {
7426        #[doc = "Do not use as analog pin"]
7427        pub const _0: Self = Self::new(0);
7428
7429        #[doc = "Use as analog pin"]
7430        pub const _1: Self = Self::new(1);
7431    }
7432}
7433#[doc(hidden)]
7434#[derive(Copy, Clone, Eq, PartialEq)]
7435pub struct P1PfsBy_SPEC;
7436impl crate::sealed::RegSpec for P1PfsBy_SPEC {
7437    type DataType = u8;
7438}
7439
7440#[doc = "Port 1%s Pin Function Select Register"]
7441pub type P1PfsBy = crate::RegValueT<P1PfsBy_SPEC>;
7442
7443impl P1PfsBy {
7444    #[doc = "Port Output Data"]
7445    #[inline(always)]
7446    pub fn podr(
7447        self,
7448    ) -> crate::common::RegisterField<
7449        0,
7450        0x1,
7451        1,
7452        0,
7453        p1pfs_by::Podr,
7454        p1pfs_by::Podr,
7455        P1PfsBy_SPEC,
7456        crate::common::RW,
7457    > {
7458        crate::common::RegisterField::<
7459            0,
7460            0x1,
7461            1,
7462            0,
7463            p1pfs_by::Podr,
7464            p1pfs_by::Podr,
7465            P1PfsBy_SPEC,
7466            crate::common::RW,
7467        >::from_register(self, 0)
7468    }
7469
7470    #[doc = "Port State"]
7471    #[inline(always)]
7472    pub fn pidr(
7473        self,
7474    ) -> crate::common::RegisterField<
7475        1,
7476        0x1,
7477        1,
7478        0,
7479        p1pfs_by::Pidr,
7480        p1pfs_by::Pidr,
7481        P1PfsBy_SPEC,
7482        crate::common::R,
7483    > {
7484        crate::common::RegisterField::<
7485            1,
7486            0x1,
7487            1,
7488            0,
7489            p1pfs_by::Pidr,
7490            p1pfs_by::Pidr,
7491            P1PfsBy_SPEC,
7492            crate::common::R,
7493        >::from_register(self, 0)
7494    }
7495
7496    #[doc = "Port Direction"]
7497    #[inline(always)]
7498    pub fn pdr(
7499        self,
7500    ) -> crate::common::RegisterField<
7501        2,
7502        0x1,
7503        1,
7504        0,
7505        p1pfs_by::Pdr,
7506        p1pfs_by::Pdr,
7507        P1PfsBy_SPEC,
7508        crate::common::RW,
7509    > {
7510        crate::common::RegisterField::<
7511            2,
7512            0x1,
7513            1,
7514            0,
7515            p1pfs_by::Pdr,
7516            p1pfs_by::Pdr,
7517            P1PfsBy_SPEC,
7518            crate::common::RW,
7519        >::from_register(self, 0)
7520    }
7521
7522    #[doc = "Pull-up Control"]
7523    #[inline(always)]
7524    pub fn pcr(
7525        self,
7526    ) -> crate::common::RegisterField<
7527        4,
7528        0x1,
7529        1,
7530        0,
7531        p1pfs_by::Pcr,
7532        p1pfs_by::Pcr,
7533        P1PfsBy_SPEC,
7534        crate::common::RW,
7535    > {
7536        crate::common::RegisterField::<
7537            4,
7538            0x1,
7539            1,
7540            0,
7541            p1pfs_by::Pcr,
7542            p1pfs_by::Pcr,
7543            P1PfsBy_SPEC,
7544            crate::common::RW,
7545        >::from_register(self, 0)
7546    }
7547
7548    #[doc = "N-Channel Open-Drain Control"]
7549    #[inline(always)]
7550    pub fn ncodr(
7551        self,
7552    ) -> crate::common::RegisterField<
7553        6,
7554        0x1,
7555        1,
7556        0,
7557        p1pfs_by::Ncodr,
7558        p1pfs_by::Ncodr,
7559        P1PfsBy_SPEC,
7560        crate::common::RW,
7561    > {
7562        crate::common::RegisterField::<
7563            6,
7564            0x1,
7565            1,
7566            0,
7567            p1pfs_by::Ncodr,
7568            p1pfs_by::Ncodr,
7569            P1PfsBy_SPEC,
7570            crate::common::RW,
7571        >::from_register(self, 0)
7572    }
7573}
7574impl ::core::default::Default for P1PfsBy {
7575    #[inline(always)]
7576    fn default() -> P1PfsBy {
7577        <crate::RegValueT<P1PfsBy_SPEC> as RegisterValue<_>>::new(0)
7578    }
7579}
7580pub mod p1pfs_by {
7581
7582    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7583    pub struct Podr_SPEC;
7584    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
7585    impl Podr {
7586        #[doc = "Output low"]
7587        pub const _0: Self = Self::new(0);
7588
7589        #[doc = "Output high"]
7590        pub const _1: Self = Self::new(1);
7591    }
7592    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7593    pub struct Pidr_SPEC;
7594    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
7595    impl Pidr {
7596        #[doc = "Low level"]
7597        pub const _0: Self = Self::new(0);
7598
7599        #[doc = "High level"]
7600        pub const _1: Self = Self::new(1);
7601    }
7602    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7603    pub struct Pdr_SPEC;
7604    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
7605    impl Pdr {
7606        #[doc = "Input (functions as an input pin)"]
7607        pub const _0: Self = Self::new(0);
7608
7609        #[doc = "Output (functions as an output pin)"]
7610        pub const _1: Self = Self::new(1);
7611    }
7612    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7613    pub struct Pcr_SPEC;
7614    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
7615    impl Pcr {
7616        #[doc = "Disable input pull-up"]
7617        pub const _0: Self = Self::new(0);
7618
7619        #[doc = "Enable input pull-up"]
7620        pub const _1: Self = Self::new(1);
7621    }
7622    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7623    pub struct Ncodr_SPEC;
7624    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
7625    impl Ncodr {
7626        #[doc = "Output CMOS"]
7627        pub const _0: Self = Self::new(0);
7628
7629        #[doc = "Output NMOS open-drain"]
7630        pub const _1: Self = Self::new(1);
7631    }
7632}
7633#[doc(hidden)]
7634#[derive(Copy, Clone, Eq, PartialEq)]
7635pub struct P200Pfs_SPEC;
7636impl crate::sealed::RegSpec for P200Pfs_SPEC {
7637    type DataType = u32;
7638}
7639
7640#[doc = "Port 200 Pin Function Select Register"]
7641pub type P200Pfs = crate::RegValueT<P200Pfs_SPEC>;
7642
7643impl P200Pfs {
7644    #[doc = "Port Output Data"]
7645    #[inline(always)]
7646    pub fn podr(
7647        self,
7648    ) -> crate::common::RegisterField<
7649        0,
7650        0x1,
7651        1,
7652        0,
7653        p200pfs::Podr,
7654        p200pfs::Podr,
7655        P200Pfs_SPEC,
7656        crate::common::RW,
7657    > {
7658        crate::common::RegisterField::<
7659            0,
7660            0x1,
7661            1,
7662            0,
7663            p200pfs::Podr,
7664            p200pfs::Podr,
7665            P200Pfs_SPEC,
7666            crate::common::RW,
7667        >::from_register(self, 0)
7668    }
7669
7670    #[doc = "Port State"]
7671    #[inline(always)]
7672    pub fn pidr(
7673        self,
7674    ) -> crate::common::RegisterField<
7675        1,
7676        0x1,
7677        1,
7678        0,
7679        p200pfs::Pidr,
7680        p200pfs::Pidr,
7681        P200Pfs_SPEC,
7682        crate::common::R,
7683    > {
7684        crate::common::RegisterField::<
7685            1,
7686            0x1,
7687            1,
7688            0,
7689            p200pfs::Pidr,
7690            p200pfs::Pidr,
7691            P200Pfs_SPEC,
7692            crate::common::R,
7693        >::from_register(self, 0)
7694    }
7695
7696    #[doc = "Port Direction"]
7697    #[inline(always)]
7698    pub fn pdr(
7699        self,
7700    ) -> crate::common::RegisterField<
7701        2,
7702        0x1,
7703        1,
7704        0,
7705        p200pfs::Pdr,
7706        p200pfs::Pdr,
7707        P200Pfs_SPEC,
7708        crate::common::RW,
7709    > {
7710        crate::common::RegisterField::<
7711            2,
7712            0x1,
7713            1,
7714            0,
7715            p200pfs::Pdr,
7716            p200pfs::Pdr,
7717            P200Pfs_SPEC,
7718            crate::common::RW,
7719        >::from_register(self, 0)
7720    }
7721
7722    #[doc = "Pull-up Control"]
7723    #[inline(always)]
7724    pub fn pcr(
7725        self,
7726    ) -> crate::common::RegisterField<
7727        4,
7728        0x1,
7729        1,
7730        0,
7731        p200pfs::Pcr,
7732        p200pfs::Pcr,
7733        P200Pfs_SPEC,
7734        crate::common::RW,
7735    > {
7736        crate::common::RegisterField::<
7737            4,
7738            0x1,
7739            1,
7740            0,
7741            p200pfs::Pcr,
7742            p200pfs::Pcr,
7743            P200Pfs_SPEC,
7744            crate::common::RW,
7745        >::from_register(self, 0)
7746    }
7747
7748    #[doc = "N-Channel Open-Drain Control"]
7749    #[inline(always)]
7750    pub fn ncodr(
7751        self,
7752    ) -> crate::common::RegisterField<
7753        6,
7754        0x1,
7755        1,
7756        0,
7757        p200pfs::Ncodr,
7758        p200pfs::Ncodr,
7759        P200Pfs_SPEC,
7760        crate::common::RW,
7761    > {
7762        crate::common::RegisterField::<
7763            6,
7764            0x1,
7765            1,
7766            0,
7767            p200pfs::Ncodr,
7768            p200pfs::Ncodr,
7769            P200Pfs_SPEC,
7770            crate::common::RW,
7771        >::from_register(self, 0)
7772    }
7773
7774    #[doc = "Port Drive Capability"]
7775    #[inline(always)]
7776    pub fn dscr(
7777        self,
7778    ) -> crate::common::RegisterField<
7779        10,
7780        0x3,
7781        1,
7782        0,
7783        p200pfs::Dscr,
7784        p200pfs::Dscr,
7785        P200Pfs_SPEC,
7786        crate::common::RW,
7787    > {
7788        crate::common::RegisterField::<
7789            10,
7790            0x3,
7791            1,
7792            0,
7793            p200pfs::Dscr,
7794            p200pfs::Dscr,
7795            P200Pfs_SPEC,
7796            crate::common::RW,
7797        >::from_register(self, 0)
7798    }
7799
7800    #[doc = "Event on Falling/Event on Rising"]
7801    #[inline(always)]
7802    pub fn eofr(
7803        self,
7804    ) -> crate::common::RegisterField<
7805        12,
7806        0x3,
7807        1,
7808        0,
7809        p200pfs::Eofr,
7810        p200pfs::Eofr,
7811        P200Pfs_SPEC,
7812        crate::common::RW,
7813    > {
7814        crate::common::RegisterField::<
7815            12,
7816            0x3,
7817            1,
7818            0,
7819            p200pfs::Eofr,
7820            p200pfs::Eofr,
7821            P200Pfs_SPEC,
7822            crate::common::RW,
7823        >::from_register(self, 0)
7824    }
7825
7826    #[doc = "IRQ Input Enable"]
7827    #[inline(always)]
7828    pub fn isel(
7829        self,
7830    ) -> crate::common::RegisterField<
7831        14,
7832        0x1,
7833        1,
7834        0,
7835        p200pfs::Isel,
7836        p200pfs::Isel,
7837        P200Pfs_SPEC,
7838        crate::common::RW,
7839    > {
7840        crate::common::RegisterField::<
7841            14,
7842            0x1,
7843            1,
7844            0,
7845            p200pfs::Isel,
7846            p200pfs::Isel,
7847            P200Pfs_SPEC,
7848            crate::common::RW,
7849        >::from_register(self, 0)
7850    }
7851
7852    #[doc = "Analog Input Enable"]
7853    #[inline(always)]
7854    pub fn asel(
7855        self,
7856    ) -> crate::common::RegisterField<
7857        15,
7858        0x1,
7859        1,
7860        0,
7861        p200pfs::Asel,
7862        p200pfs::Asel,
7863        P200Pfs_SPEC,
7864        crate::common::RW,
7865    > {
7866        crate::common::RegisterField::<
7867            15,
7868            0x1,
7869            1,
7870            0,
7871            p200pfs::Asel,
7872            p200pfs::Asel,
7873            P200Pfs_SPEC,
7874            crate::common::RW,
7875        >::from_register(self, 0)
7876    }
7877
7878    #[doc = "Port Mode Control"]
7879    #[inline(always)]
7880    pub fn pmr(
7881        self,
7882    ) -> crate::common::RegisterField<
7883        16,
7884        0x1,
7885        1,
7886        0,
7887        p200pfs::Pmr,
7888        p200pfs::Pmr,
7889        P200Pfs_SPEC,
7890        crate::common::RW,
7891    > {
7892        crate::common::RegisterField::<
7893            16,
7894            0x1,
7895            1,
7896            0,
7897            p200pfs::Pmr,
7898            p200pfs::Pmr,
7899            P200Pfs_SPEC,
7900            crate::common::RW,
7901        >::from_register(self, 0)
7902    }
7903
7904    #[doc = "Peripheral Select"]
7905    #[inline(always)]
7906    pub fn psel(
7907        self,
7908    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P200Pfs_SPEC, crate::common::RW> {
7909        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P200Pfs_SPEC,crate::common::RW>::from_register(self,0)
7910    }
7911}
7912impl ::core::default::Default for P200Pfs {
7913    #[inline(always)]
7914    fn default() -> P200Pfs {
7915        <crate::RegValueT<P200Pfs_SPEC> as RegisterValue<_>>::new(0)
7916    }
7917}
7918pub mod p200pfs {
7919
7920    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7921    pub struct Podr_SPEC;
7922    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
7923    impl Podr {
7924        #[doc = "Output low"]
7925        pub const _0: Self = Self::new(0);
7926
7927        #[doc = "Output high"]
7928        pub const _1: Self = Self::new(1);
7929    }
7930    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7931    pub struct Pidr_SPEC;
7932    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
7933    impl Pidr {
7934        #[doc = "Low level"]
7935        pub const _0: Self = Self::new(0);
7936
7937        #[doc = "High level"]
7938        pub const _1: Self = Self::new(1);
7939    }
7940    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7941    pub struct Pdr_SPEC;
7942    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
7943    impl Pdr {
7944        #[doc = "Input (functions as an input pin)"]
7945        pub const _0: Self = Self::new(0);
7946
7947        #[doc = "Output (functions as an output pin)"]
7948        pub const _1: Self = Self::new(1);
7949    }
7950    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7951    pub struct Pcr_SPEC;
7952    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
7953    impl Pcr {
7954        #[doc = "Disable input pull-up"]
7955        pub const _0: Self = Self::new(0);
7956
7957        #[doc = "Enable input pull-up"]
7958        pub const _1: Self = Self::new(1);
7959    }
7960    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7961    pub struct Ncodr_SPEC;
7962    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
7963    impl Ncodr {
7964        #[doc = "Output CMOS"]
7965        pub const _0: Self = Self::new(0);
7966
7967        #[doc = "Output NMOS open-drain"]
7968        pub const _1: Self = Self::new(1);
7969    }
7970    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7971    pub struct Dscr_SPEC;
7972    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
7973    impl Dscr {
7974        #[doc = "Low drive"]
7975        pub const _00: Self = Self::new(0);
7976
7977        #[doc = "Middle drive"]
7978        pub const _01: Self = Self::new(1);
7979
7980        #[doc = "Setting prohibited"]
7981        pub const _10: Self = Self::new(2);
7982
7983        #[doc = "High drive"]
7984        pub const _11: Self = Self::new(3);
7985    }
7986    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7987    pub struct Eofr_SPEC;
7988    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
7989    impl Eofr {
7990        #[doc = "Don\'t care"]
7991        pub const _00: Self = Self::new(0);
7992
7993        #[doc = "Detect rising edge"]
7994        pub const _01: Self = Self::new(1);
7995
7996        #[doc = "Detect falling edge"]
7997        pub const _10: Self = Self::new(2);
7998
7999        #[doc = "Detect both edges"]
8000        pub const _11: Self = Self::new(3);
8001    }
8002    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8003    pub struct Isel_SPEC;
8004    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
8005    impl Isel {
8006        #[doc = "Do not use as IRQn input pin"]
8007        pub const _0: Self = Self::new(0);
8008
8009        #[doc = "Use as IRQn input pin"]
8010        pub const _1: Self = Self::new(1);
8011    }
8012    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8013    pub struct Asel_SPEC;
8014    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
8015    impl Asel {
8016        #[doc = "Do not use as analog pin"]
8017        pub const _0: Self = Self::new(0);
8018
8019        #[doc = "Use as analog pin"]
8020        pub const _1: Self = Self::new(1);
8021    }
8022    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8023    pub struct Pmr_SPEC;
8024    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
8025    impl Pmr {
8026        #[doc = "Use as general I/O pin"]
8027        pub const _0: Self = Self::new(0);
8028
8029        #[doc = "Use as I/O port for peripheral functions"]
8030        pub const _1: Self = Self::new(1);
8031    }
8032}
8033#[doc(hidden)]
8034#[derive(Copy, Clone, Eq, PartialEq)]
8035pub struct P200PfsHa_SPEC;
8036impl crate::sealed::RegSpec for P200PfsHa_SPEC {
8037    type DataType = u16;
8038}
8039
8040#[doc = "Port 200 Pin Function Select Register"]
8041pub type P200PfsHa = crate::RegValueT<P200PfsHa_SPEC>;
8042
8043impl P200PfsHa {
8044    #[doc = "Port Output Data"]
8045    #[inline(always)]
8046    pub fn podr(
8047        self,
8048    ) -> crate::common::RegisterField<
8049        0,
8050        0x1,
8051        1,
8052        0,
8053        p200pfs_ha::Podr,
8054        p200pfs_ha::Podr,
8055        P200PfsHa_SPEC,
8056        crate::common::RW,
8057    > {
8058        crate::common::RegisterField::<
8059            0,
8060            0x1,
8061            1,
8062            0,
8063            p200pfs_ha::Podr,
8064            p200pfs_ha::Podr,
8065            P200PfsHa_SPEC,
8066            crate::common::RW,
8067        >::from_register(self, 0)
8068    }
8069
8070    #[doc = "Port State"]
8071    #[inline(always)]
8072    pub fn pidr(
8073        self,
8074    ) -> crate::common::RegisterField<
8075        1,
8076        0x1,
8077        1,
8078        0,
8079        p200pfs_ha::Pidr,
8080        p200pfs_ha::Pidr,
8081        P200PfsHa_SPEC,
8082        crate::common::R,
8083    > {
8084        crate::common::RegisterField::<
8085            1,
8086            0x1,
8087            1,
8088            0,
8089            p200pfs_ha::Pidr,
8090            p200pfs_ha::Pidr,
8091            P200PfsHa_SPEC,
8092            crate::common::R,
8093        >::from_register(self, 0)
8094    }
8095
8096    #[doc = "Port Direction"]
8097    #[inline(always)]
8098    pub fn pdr(
8099        self,
8100    ) -> crate::common::RegisterField<
8101        2,
8102        0x1,
8103        1,
8104        0,
8105        p200pfs_ha::Pdr,
8106        p200pfs_ha::Pdr,
8107        P200PfsHa_SPEC,
8108        crate::common::RW,
8109    > {
8110        crate::common::RegisterField::<
8111            2,
8112            0x1,
8113            1,
8114            0,
8115            p200pfs_ha::Pdr,
8116            p200pfs_ha::Pdr,
8117            P200PfsHa_SPEC,
8118            crate::common::RW,
8119        >::from_register(self, 0)
8120    }
8121
8122    #[doc = "Pull-up Control"]
8123    #[inline(always)]
8124    pub fn pcr(
8125        self,
8126    ) -> crate::common::RegisterField<
8127        4,
8128        0x1,
8129        1,
8130        0,
8131        p200pfs_ha::Pcr,
8132        p200pfs_ha::Pcr,
8133        P200PfsHa_SPEC,
8134        crate::common::RW,
8135    > {
8136        crate::common::RegisterField::<
8137            4,
8138            0x1,
8139            1,
8140            0,
8141            p200pfs_ha::Pcr,
8142            p200pfs_ha::Pcr,
8143            P200PfsHa_SPEC,
8144            crate::common::RW,
8145        >::from_register(self, 0)
8146    }
8147
8148    #[doc = "N-Channel Open-Drain Control"]
8149    #[inline(always)]
8150    pub fn ncodr(
8151        self,
8152    ) -> crate::common::RegisterField<
8153        6,
8154        0x1,
8155        1,
8156        0,
8157        p200pfs_ha::Ncodr,
8158        p200pfs_ha::Ncodr,
8159        P200PfsHa_SPEC,
8160        crate::common::RW,
8161    > {
8162        crate::common::RegisterField::<
8163            6,
8164            0x1,
8165            1,
8166            0,
8167            p200pfs_ha::Ncodr,
8168            p200pfs_ha::Ncodr,
8169            P200PfsHa_SPEC,
8170            crate::common::RW,
8171        >::from_register(self, 0)
8172    }
8173
8174    #[doc = "Port Drive Capability"]
8175    #[inline(always)]
8176    pub fn dscr(
8177        self,
8178    ) -> crate::common::RegisterField<
8179        10,
8180        0x3,
8181        1,
8182        0,
8183        p200pfs_ha::Dscr,
8184        p200pfs_ha::Dscr,
8185        P200PfsHa_SPEC,
8186        crate::common::RW,
8187    > {
8188        crate::common::RegisterField::<
8189            10,
8190            0x3,
8191            1,
8192            0,
8193            p200pfs_ha::Dscr,
8194            p200pfs_ha::Dscr,
8195            P200PfsHa_SPEC,
8196            crate::common::RW,
8197        >::from_register(self, 0)
8198    }
8199
8200    #[doc = "Event on Falling/Event on Rising"]
8201    #[inline(always)]
8202    pub fn eofr(
8203        self,
8204    ) -> crate::common::RegisterField<
8205        12,
8206        0x3,
8207        1,
8208        0,
8209        p200pfs_ha::Eofr,
8210        p200pfs_ha::Eofr,
8211        P200PfsHa_SPEC,
8212        crate::common::RW,
8213    > {
8214        crate::common::RegisterField::<
8215            12,
8216            0x3,
8217            1,
8218            0,
8219            p200pfs_ha::Eofr,
8220            p200pfs_ha::Eofr,
8221            P200PfsHa_SPEC,
8222            crate::common::RW,
8223        >::from_register(self, 0)
8224    }
8225
8226    #[doc = "IRQ Input Enable"]
8227    #[inline(always)]
8228    pub fn isel(
8229        self,
8230    ) -> crate::common::RegisterField<
8231        14,
8232        0x1,
8233        1,
8234        0,
8235        p200pfs_ha::Isel,
8236        p200pfs_ha::Isel,
8237        P200PfsHa_SPEC,
8238        crate::common::RW,
8239    > {
8240        crate::common::RegisterField::<
8241            14,
8242            0x1,
8243            1,
8244            0,
8245            p200pfs_ha::Isel,
8246            p200pfs_ha::Isel,
8247            P200PfsHa_SPEC,
8248            crate::common::RW,
8249        >::from_register(self, 0)
8250    }
8251
8252    #[doc = "Analog Input Enable"]
8253    #[inline(always)]
8254    pub fn asel(
8255        self,
8256    ) -> crate::common::RegisterField<
8257        15,
8258        0x1,
8259        1,
8260        0,
8261        p200pfs_ha::Asel,
8262        p200pfs_ha::Asel,
8263        P200PfsHa_SPEC,
8264        crate::common::RW,
8265    > {
8266        crate::common::RegisterField::<
8267            15,
8268            0x1,
8269            1,
8270            0,
8271            p200pfs_ha::Asel,
8272            p200pfs_ha::Asel,
8273            P200PfsHa_SPEC,
8274            crate::common::RW,
8275        >::from_register(self, 0)
8276    }
8277}
8278impl ::core::default::Default for P200PfsHa {
8279    #[inline(always)]
8280    fn default() -> P200PfsHa {
8281        <crate::RegValueT<P200PfsHa_SPEC> as RegisterValue<_>>::new(0)
8282    }
8283}
8284pub mod p200pfs_ha {
8285
8286    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8287    pub struct Podr_SPEC;
8288    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8289    impl Podr {
8290        #[doc = "Output low"]
8291        pub const _0: Self = Self::new(0);
8292
8293        #[doc = "Output high"]
8294        pub const _1: Self = Self::new(1);
8295    }
8296    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8297    pub struct Pidr_SPEC;
8298    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8299    impl Pidr {
8300        #[doc = "Low level"]
8301        pub const _0: Self = Self::new(0);
8302
8303        #[doc = "High level"]
8304        pub const _1: Self = Self::new(1);
8305    }
8306    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8307    pub struct Pdr_SPEC;
8308    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8309    impl Pdr {
8310        #[doc = "Input (functions as an input pin)"]
8311        pub const _0: Self = Self::new(0);
8312
8313        #[doc = "Output (functions as an output pin)"]
8314        pub const _1: Self = Self::new(1);
8315    }
8316    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8317    pub struct Pcr_SPEC;
8318    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8319    impl Pcr {
8320        #[doc = "Disable input pull-up"]
8321        pub const _0: Self = Self::new(0);
8322
8323        #[doc = "Enable input pull-up"]
8324        pub const _1: Self = Self::new(1);
8325    }
8326    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8327    pub struct Ncodr_SPEC;
8328    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8329    impl Ncodr {
8330        #[doc = "Output CMOS"]
8331        pub const _0: Self = Self::new(0);
8332
8333        #[doc = "Output NMOS open-drain"]
8334        pub const _1: Self = Self::new(1);
8335    }
8336    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8337    pub struct Dscr_SPEC;
8338    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
8339    impl Dscr {
8340        #[doc = "Low drive"]
8341        pub const _00: Self = Self::new(0);
8342
8343        #[doc = "Middle drive"]
8344        pub const _01: Self = Self::new(1);
8345
8346        #[doc = "Setting prohibited"]
8347        pub const _10: Self = Self::new(2);
8348
8349        #[doc = "High drive"]
8350        pub const _11: Self = Self::new(3);
8351    }
8352    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8353    pub struct Eofr_SPEC;
8354    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
8355    impl Eofr {
8356        #[doc = "Don\'t care"]
8357        pub const _00: Self = Self::new(0);
8358
8359        #[doc = "Detect rising edge"]
8360        pub const _01: Self = Self::new(1);
8361
8362        #[doc = "Detect falling edge"]
8363        pub const _10: Self = Self::new(2);
8364
8365        #[doc = "Detect both edges"]
8366        pub const _11: Self = Self::new(3);
8367    }
8368    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8369    pub struct Isel_SPEC;
8370    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
8371    impl Isel {
8372        #[doc = "Do not use as IRQn input pin"]
8373        pub const _0: Self = Self::new(0);
8374
8375        #[doc = "Use as IRQn input pin"]
8376        pub const _1: Self = Self::new(1);
8377    }
8378    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8379    pub struct Asel_SPEC;
8380    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
8381    impl Asel {
8382        #[doc = "Do not use as analog pin"]
8383        pub const _0: Self = Self::new(0);
8384
8385        #[doc = "Use as analog pin"]
8386        pub const _1: Self = Self::new(1);
8387    }
8388}
8389#[doc(hidden)]
8390#[derive(Copy, Clone, Eq, PartialEq)]
8391pub struct P200PfsBy_SPEC;
8392impl crate::sealed::RegSpec for P200PfsBy_SPEC {
8393    type DataType = u8;
8394}
8395
8396#[doc = "Port 200 Pin Function Select Register"]
8397pub type P200PfsBy = crate::RegValueT<P200PfsBy_SPEC>;
8398
8399impl P200PfsBy {
8400    #[doc = "Port Output Data"]
8401    #[inline(always)]
8402    pub fn podr(
8403        self,
8404    ) -> crate::common::RegisterField<
8405        0,
8406        0x1,
8407        1,
8408        0,
8409        p200pfs_by::Podr,
8410        p200pfs_by::Podr,
8411        P200PfsBy_SPEC,
8412        crate::common::RW,
8413    > {
8414        crate::common::RegisterField::<
8415            0,
8416            0x1,
8417            1,
8418            0,
8419            p200pfs_by::Podr,
8420            p200pfs_by::Podr,
8421            P200PfsBy_SPEC,
8422            crate::common::RW,
8423        >::from_register(self, 0)
8424    }
8425
8426    #[doc = "Port State"]
8427    #[inline(always)]
8428    pub fn pidr(
8429        self,
8430    ) -> crate::common::RegisterField<
8431        1,
8432        0x1,
8433        1,
8434        0,
8435        p200pfs_by::Pidr,
8436        p200pfs_by::Pidr,
8437        P200PfsBy_SPEC,
8438        crate::common::R,
8439    > {
8440        crate::common::RegisterField::<
8441            1,
8442            0x1,
8443            1,
8444            0,
8445            p200pfs_by::Pidr,
8446            p200pfs_by::Pidr,
8447            P200PfsBy_SPEC,
8448            crate::common::R,
8449        >::from_register(self, 0)
8450    }
8451
8452    #[doc = "Port Direction"]
8453    #[inline(always)]
8454    pub fn pdr(
8455        self,
8456    ) -> crate::common::RegisterField<
8457        2,
8458        0x1,
8459        1,
8460        0,
8461        p200pfs_by::Pdr,
8462        p200pfs_by::Pdr,
8463        P200PfsBy_SPEC,
8464        crate::common::RW,
8465    > {
8466        crate::common::RegisterField::<
8467            2,
8468            0x1,
8469            1,
8470            0,
8471            p200pfs_by::Pdr,
8472            p200pfs_by::Pdr,
8473            P200PfsBy_SPEC,
8474            crate::common::RW,
8475        >::from_register(self, 0)
8476    }
8477
8478    #[doc = "Pull-up Control"]
8479    #[inline(always)]
8480    pub fn pcr(
8481        self,
8482    ) -> crate::common::RegisterField<
8483        4,
8484        0x1,
8485        1,
8486        0,
8487        p200pfs_by::Pcr,
8488        p200pfs_by::Pcr,
8489        P200PfsBy_SPEC,
8490        crate::common::RW,
8491    > {
8492        crate::common::RegisterField::<
8493            4,
8494            0x1,
8495            1,
8496            0,
8497            p200pfs_by::Pcr,
8498            p200pfs_by::Pcr,
8499            P200PfsBy_SPEC,
8500            crate::common::RW,
8501        >::from_register(self, 0)
8502    }
8503
8504    #[doc = "N-Channel Open-Drain Control"]
8505    #[inline(always)]
8506    pub fn ncodr(
8507        self,
8508    ) -> crate::common::RegisterField<
8509        6,
8510        0x1,
8511        1,
8512        0,
8513        p200pfs_by::Ncodr,
8514        p200pfs_by::Ncodr,
8515        P200PfsBy_SPEC,
8516        crate::common::RW,
8517    > {
8518        crate::common::RegisterField::<
8519            6,
8520            0x1,
8521            1,
8522            0,
8523            p200pfs_by::Ncodr,
8524            p200pfs_by::Ncodr,
8525            P200PfsBy_SPEC,
8526            crate::common::RW,
8527        >::from_register(self, 0)
8528    }
8529}
8530impl ::core::default::Default for P200PfsBy {
8531    #[inline(always)]
8532    fn default() -> P200PfsBy {
8533        <crate::RegValueT<P200PfsBy_SPEC> as RegisterValue<_>>::new(0)
8534    }
8535}
8536pub mod p200pfs_by {
8537
8538    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8539    pub struct Podr_SPEC;
8540    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8541    impl Podr {
8542        #[doc = "Output low"]
8543        pub const _0: Self = Self::new(0);
8544
8545        #[doc = "Output high"]
8546        pub const _1: Self = Self::new(1);
8547    }
8548    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8549    pub struct Pidr_SPEC;
8550    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8551    impl Pidr {
8552        #[doc = "Low level"]
8553        pub const _0: Self = Self::new(0);
8554
8555        #[doc = "High level"]
8556        pub const _1: Self = Self::new(1);
8557    }
8558    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8559    pub struct Pdr_SPEC;
8560    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8561    impl Pdr {
8562        #[doc = "Input (functions as an input pin)"]
8563        pub const _0: Self = Self::new(0);
8564
8565        #[doc = "Output (functions as an output pin)"]
8566        pub const _1: Self = Self::new(1);
8567    }
8568    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8569    pub struct Pcr_SPEC;
8570    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8571    impl Pcr {
8572        #[doc = "Disable input pull-up"]
8573        pub const _0: Self = Self::new(0);
8574
8575        #[doc = "Enable input pull-up"]
8576        pub const _1: Self = Self::new(1);
8577    }
8578    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8579    pub struct Ncodr_SPEC;
8580    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8581    impl Ncodr {
8582        #[doc = "Output CMOS"]
8583        pub const _0: Self = Self::new(0);
8584
8585        #[doc = "Output NMOS open-drain"]
8586        pub const _1: Self = Self::new(1);
8587    }
8588}
8589#[doc(hidden)]
8590#[derive(Copy, Clone, Eq, PartialEq)]
8591pub struct P201Pfs_SPEC;
8592impl crate::sealed::RegSpec for P201Pfs_SPEC {
8593    type DataType = u32;
8594}
8595
8596#[doc = "Port 201 Pin Function Select Register"]
8597pub type P201Pfs = crate::RegValueT<P201Pfs_SPEC>;
8598
8599impl P201Pfs {
8600    #[doc = "Port Output Data"]
8601    #[inline(always)]
8602    pub fn podr(
8603        self,
8604    ) -> crate::common::RegisterField<
8605        0,
8606        0x1,
8607        1,
8608        0,
8609        p201pfs::Podr,
8610        p201pfs::Podr,
8611        P201Pfs_SPEC,
8612        crate::common::RW,
8613    > {
8614        crate::common::RegisterField::<
8615            0,
8616            0x1,
8617            1,
8618            0,
8619            p201pfs::Podr,
8620            p201pfs::Podr,
8621            P201Pfs_SPEC,
8622            crate::common::RW,
8623        >::from_register(self, 0)
8624    }
8625
8626    #[doc = "Port State"]
8627    #[inline(always)]
8628    pub fn pidr(
8629        self,
8630    ) -> crate::common::RegisterField<
8631        1,
8632        0x1,
8633        1,
8634        0,
8635        p201pfs::Pidr,
8636        p201pfs::Pidr,
8637        P201Pfs_SPEC,
8638        crate::common::R,
8639    > {
8640        crate::common::RegisterField::<
8641            1,
8642            0x1,
8643            1,
8644            0,
8645            p201pfs::Pidr,
8646            p201pfs::Pidr,
8647            P201Pfs_SPEC,
8648            crate::common::R,
8649        >::from_register(self, 0)
8650    }
8651
8652    #[doc = "Port Direction"]
8653    #[inline(always)]
8654    pub fn pdr(
8655        self,
8656    ) -> crate::common::RegisterField<
8657        2,
8658        0x1,
8659        1,
8660        0,
8661        p201pfs::Pdr,
8662        p201pfs::Pdr,
8663        P201Pfs_SPEC,
8664        crate::common::RW,
8665    > {
8666        crate::common::RegisterField::<
8667            2,
8668            0x1,
8669            1,
8670            0,
8671            p201pfs::Pdr,
8672            p201pfs::Pdr,
8673            P201Pfs_SPEC,
8674            crate::common::RW,
8675        >::from_register(self, 0)
8676    }
8677
8678    #[doc = "Pull-up Control"]
8679    #[inline(always)]
8680    pub fn pcr(
8681        self,
8682    ) -> crate::common::RegisterField<
8683        4,
8684        0x1,
8685        1,
8686        0,
8687        p201pfs::Pcr,
8688        p201pfs::Pcr,
8689        P201Pfs_SPEC,
8690        crate::common::RW,
8691    > {
8692        crate::common::RegisterField::<
8693            4,
8694            0x1,
8695            1,
8696            0,
8697            p201pfs::Pcr,
8698            p201pfs::Pcr,
8699            P201Pfs_SPEC,
8700            crate::common::RW,
8701        >::from_register(self, 0)
8702    }
8703
8704    #[doc = "N-Channel Open-Drain Control"]
8705    #[inline(always)]
8706    pub fn ncodr(
8707        self,
8708    ) -> crate::common::RegisterField<
8709        6,
8710        0x1,
8711        1,
8712        0,
8713        p201pfs::Ncodr,
8714        p201pfs::Ncodr,
8715        P201Pfs_SPEC,
8716        crate::common::RW,
8717    > {
8718        crate::common::RegisterField::<
8719            6,
8720            0x1,
8721            1,
8722            0,
8723            p201pfs::Ncodr,
8724            p201pfs::Ncodr,
8725            P201Pfs_SPEC,
8726            crate::common::RW,
8727        >::from_register(self, 0)
8728    }
8729
8730    #[doc = "Port Drive Capability"]
8731    #[inline(always)]
8732    pub fn dscr(
8733        self,
8734    ) -> crate::common::RegisterField<
8735        10,
8736        0x3,
8737        1,
8738        0,
8739        p201pfs::Dscr,
8740        p201pfs::Dscr,
8741        P201Pfs_SPEC,
8742        crate::common::RW,
8743    > {
8744        crate::common::RegisterField::<
8745            10,
8746            0x3,
8747            1,
8748            0,
8749            p201pfs::Dscr,
8750            p201pfs::Dscr,
8751            P201Pfs_SPEC,
8752            crate::common::RW,
8753        >::from_register(self, 0)
8754    }
8755
8756    #[doc = "Event on Falling/Event on Rising"]
8757    #[inline(always)]
8758    pub fn eofr(
8759        self,
8760    ) -> crate::common::RegisterField<
8761        12,
8762        0x3,
8763        1,
8764        0,
8765        p201pfs::Eofr,
8766        p201pfs::Eofr,
8767        P201Pfs_SPEC,
8768        crate::common::RW,
8769    > {
8770        crate::common::RegisterField::<
8771            12,
8772            0x3,
8773            1,
8774            0,
8775            p201pfs::Eofr,
8776            p201pfs::Eofr,
8777            P201Pfs_SPEC,
8778            crate::common::RW,
8779        >::from_register(self, 0)
8780    }
8781
8782    #[doc = "IRQ Input Enable"]
8783    #[inline(always)]
8784    pub fn isel(
8785        self,
8786    ) -> crate::common::RegisterField<
8787        14,
8788        0x1,
8789        1,
8790        0,
8791        p201pfs::Isel,
8792        p201pfs::Isel,
8793        P201Pfs_SPEC,
8794        crate::common::RW,
8795    > {
8796        crate::common::RegisterField::<
8797            14,
8798            0x1,
8799            1,
8800            0,
8801            p201pfs::Isel,
8802            p201pfs::Isel,
8803            P201Pfs_SPEC,
8804            crate::common::RW,
8805        >::from_register(self, 0)
8806    }
8807
8808    #[doc = "Analog Input Enable"]
8809    #[inline(always)]
8810    pub fn asel(
8811        self,
8812    ) -> crate::common::RegisterField<
8813        15,
8814        0x1,
8815        1,
8816        0,
8817        p201pfs::Asel,
8818        p201pfs::Asel,
8819        P201Pfs_SPEC,
8820        crate::common::RW,
8821    > {
8822        crate::common::RegisterField::<
8823            15,
8824            0x1,
8825            1,
8826            0,
8827            p201pfs::Asel,
8828            p201pfs::Asel,
8829            P201Pfs_SPEC,
8830            crate::common::RW,
8831        >::from_register(self, 0)
8832    }
8833
8834    #[doc = "Port Mode Control"]
8835    #[inline(always)]
8836    pub fn pmr(
8837        self,
8838    ) -> crate::common::RegisterField<
8839        16,
8840        0x1,
8841        1,
8842        0,
8843        p201pfs::Pmr,
8844        p201pfs::Pmr,
8845        P201Pfs_SPEC,
8846        crate::common::RW,
8847    > {
8848        crate::common::RegisterField::<
8849            16,
8850            0x1,
8851            1,
8852            0,
8853            p201pfs::Pmr,
8854            p201pfs::Pmr,
8855            P201Pfs_SPEC,
8856            crate::common::RW,
8857        >::from_register(self, 0)
8858    }
8859
8860    #[doc = "Peripheral Select"]
8861    #[inline(always)]
8862    pub fn psel(
8863        self,
8864    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P201Pfs_SPEC, crate::common::RW> {
8865        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P201Pfs_SPEC,crate::common::RW>::from_register(self,0)
8866    }
8867}
8868impl ::core::default::Default for P201Pfs {
8869    #[inline(always)]
8870    fn default() -> P201Pfs {
8871        <crate::RegValueT<P201Pfs_SPEC> as RegisterValue<_>>::new(16)
8872    }
8873}
8874pub mod p201pfs {
8875
8876    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8877    pub struct Podr_SPEC;
8878    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8879    impl Podr {
8880        #[doc = "Output low"]
8881        pub const _0: Self = Self::new(0);
8882
8883        #[doc = "Output high"]
8884        pub const _1: Self = Self::new(1);
8885    }
8886    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8887    pub struct Pidr_SPEC;
8888    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8889    impl Pidr {
8890        #[doc = "Low level"]
8891        pub const _0: Self = Self::new(0);
8892
8893        #[doc = "High level"]
8894        pub const _1: Self = Self::new(1);
8895    }
8896    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8897    pub struct Pdr_SPEC;
8898    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8899    impl Pdr {
8900        #[doc = "Input (functions as an input pin)"]
8901        pub const _0: Self = Self::new(0);
8902
8903        #[doc = "Output (functions as an output pin)"]
8904        pub const _1: Self = Self::new(1);
8905    }
8906    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8907    pub struct Pcr_SPEC;
8908    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8909    impl Pcr {
8910        #[doc = "Disable input pull-up"]
8911        pub const _0: Self = Self::new(0);
8912
8913        #[doc = "Enable input pull-up"]
8914        pub const _1: Self = Self::new(1);
8915    }
8916    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8917    pub struct Ncodr_SPEC;
8918    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8919    impl Ncodr {
8920        #[doc = "Output CMOS"]
8921        pub const _0: Self = Self::new(0);
8922
8923        #[doc = "Output NMOS open-drain"]
8924        pub const _1: Self = Self::new(1);
8925    }
8926    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8927    pub struct Dscr_SPEC;
8928    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
8929    impl Dscr {
8930        #[doc = "Low drive"]
8931        pub const _00: Self = Self::new(0);
8932
8933        #[doc = "Middle drive"]
8934        pub const _01: Self = Self::new(1);
8935
8936        #[doc = "Setting prohibited"]
8937        pub const _10: Self = Self::new(2);
8938
8939        #[doc = "High drive"]
8940        pub const _11: Self = Self::new(3);
8941    }
8942    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8943    pub struct Eofr_SPEC;
8944    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
8945    impl Eofr {
8946        #[doc = "Don\'t care"]
8947        pub const _00: Self = Self::new(0);
8948
8949        #[doc = "Detect rising edge"]
8950        pub const _01: Self = Self::new(1);
8951
8952        #[doc = "Detect falling edge"]
8953        pub const _10: Self = Self::new(2);
8954
8955        #[doc = "Detect both edges"]
8956        pub const _11: Self = Self::new(3);
8957    }
8958    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8959    pub struct Isel_SPEC;
8960    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
8961    impl Isel {
8962        #[doc = "Do not use as IRQn input pin"]
8963        pub const _0: Self = Self::new(0);
8964
8965        #[doc = "Use as IRQn input pin"]
8966        pub const _1: Self = Self::new(1);
8967    }
8968    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8969    pub struct Asel_SPEC;
8970    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
8971    impl Asel {
8972        #[doc = "Do not use as analog pin"]
8973        pub const _0: Self = Self::new(0);
8974
8975        #[doc = "Use as analog pin"]
8976        pub const _1: Self = Self::new(1);
8977    }
8978    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8979    pub struct Pmr_SPEC;
8980    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
8981    impl Pmr {
8982        #[doc = "Use as general I/O pin"]
8983        pub const _0: Self = Self::new(0);
8984
8985        #[doc = "Use as I/O port for peripheral functions"]
8986        pub const _1: Self = Self::new(1);
8987    }
8988}
8989#[doc(hidden)]
8990#[derive(Copy, Clone, Eq, PartialEq)]
8991pub struct P201PfsHa_SPEC;
8992impl crate::sealed::RegSpec for P201PfsHa_SPEC {
8993    type DataType = u16;
8994}
8995
8996#[doc = "Port 201 Pin Function Select Register"]
8997pub type P201PfsHa = crate::RegValueT<P201PfsHa_SPEC>;
8998
8999impl P201PfsHa {
9000    #[doc = "Port Output Data"]
9001    #[inline(always)]
9002    pub fn podr(
9003        self,
9004    ) -> crate::common::RegisterField<
9005        0,
9006        0x1,
9007        1,
9008        0,
9009        p201pfs_ha::Podr,
9010        p201pfs_ha::Podr,
9011        P201PfsHa_SPEC,
9012        crate::common::RW,
9013    > {
9014        crate::common::RegisterField::<
9015            0,
9016            0x1,
9017            1,
9018            0,
9019            p201pfs_ha::Podr,
9020            p201pfs_ha::Podr,
9021            P201PfsHa_SPEC,
9022            crate::common::RW,
9023        >::from_register(self, 0)
9024    }
9025
9026    #[doc = "Port State"]
9027    #[inline(always)]
9028    pub fn pidr(
9029        self,
9030    ) -> crate::common::RegisterField<
9031        1,
9032        0x1,
9033        1,
9034        0,
9035        p201pfs_ha::Pidr,
9036        p201pfs_ha::Pidr,
9037        P201PfsHa_SPEC,
9038        crate::common::R,
9039    > {
9040        crate::common::RegisterField::<
9041            1,
9042            0x1,
9043            1,
9044            0,
9045            p201pfs_ha::Pidr,
9046            p201pfs_ha::Pidr,
9047            P201PfsHa_SPEC,
9048            crate::common::R,
9049        >::from_register(self, 0)
9050    }
9051
9052    #[doc = "Port Direction"]
9053    #[inline(always)]
9054    pub fn pdr(
9055        self,
9056    ) -> crate::common::RegisterField<
9057        2,
9058        0x1,
9059        1,
9060        0,
9061        p201pfs_ha::Pdr,
9062        p201pfs_ha::Pdr,
9063        P201PfsHa_SPEC,
9064        crate::common::RW,
9065    > {
9066        crate::common::RegisterField::<
9067            2,
9068            0x1,
9069            1,
9070            0,
9071            p201pfs_ha::Pdr,
9072            p201pfs_ha::Pdr,
9073            P201PfsHa_SPEC,
9074            crate::common::RW,
9075        >::from_register(self, 0)
9076    }
9077
9078    #[doc = "Pull-up Control"]
9079    #[inline(always)]
9080    pub fn pcr(
9081        self,
9082    ) -> crate::common::RegisterField<
9083        4,
9084        0x1,
9085        1,
9086        0,
9087        p201pfs_ha::Pcr,
9088        p201pfs_ha::Pcr,
9089        P201PfsHa_SPEC,
9090        crate::common::RW,
9091    > {
9092        crate::common::RegisterField::<
9093            4,
9094            0x1,
9095            1,
9096            0,
9097            p201pfs_ha::Pcr,
9098            p201pfs_ha::Pcr,
9099            P201PfsHa_SPEC,
9100            crate::common::RW,
9101        >::from_register(self, 0)
9102    }
9103
9104    #[doc = "N-Channel Open-Drain Control"]
9105    #[inline(always)]
9106    pub fn ncodr(
9107        self,
9108    ) -> crate::common::RegisterField<
9109        6,
9110        0x1,
9111        1,
9112        0,
9113        p201pfs_ha::Ncodr,
9114        p201pfs_ha::Ncodr,
9115        P201PfsHa_SPEC,
9116        crate::common::RW,
9117    > {
9118        crate::common::RegisterField::<
9119            6,
9120            0x1,
9121            1,
9122            0,
9123            p201pfs_ha::Ncodr,
9124            p201pfs_ha::Ncodr,
9125            P201PfsHa_SPEC,
9126            crate::common::RW,
9127        >::from_register(self, 0)
9128    }
9129
9130    #[doc = "Port Drive Capability"]
9131    #[inline(always)]
9132    pub fn dscr(
9133        self,
9134    ) -> crate::common::RegisterField<
9135        10,
9136        0x3,
9137        1,
9138        0,
9139        p201pfs_ha::Dscr,
9140        p201pfs_ha::Dscr,
9141        P201PfsHa_SPEC,
9142        crate::common::RW,
9143    > {
9144        crate::common::RegisterField::<
9145            10,
9146            0x3,
9147            1,
9148            0,
9149            p201pfs_ha::Dscr,
9150            p201pfs_ha::Dscr,
9151            P201PfsHa_SPEC,
9152            crate::common::RW,
9153        >::from_register(self, 0)
9154    }
9155
9156    #[doc = "Event on Falling/Event on Rising"]
9157    #[inline(always)]
9158    pub fn eofr(
9159        self,
9160    ) -> crate::common::RegisterField<
9161        12,
9162        0x3,
9163        1,
9164        0,
9165        p201pfs_ha::Eofr,
9166        p201pfs_ha::Eofr,
9167        P201PfsHa_SPEC,
9168        crate::common::RW,
9169    > {
9170        crate::common::RegisterField::<
9171            12,
9172            0x3,
9173            1,
9174            0,
9175            p201pfs_ha::Eofr,
9176            p201pfs_ha::Eofr,
9177            P201PfsHa_SPEC,
9178            crate::common::RW,
9179        >::from_register(self, 0)
9180    }
9181
9182    #[doc = "IRQ Input Enable"]
9183    #[inline(always)]
9184    pub fn isel(
9185        self,
9186    ) -> crate::common::RegisterField<
9187        14,
9188        0x1,
9189        1,
9190        0,
9191        p201pfs_ha::Isel,
9192        p201pfs_ha::Isel,
9193        P201PfsHa_SPEC,
9194        crate::common::RW,
9195    > {
9196        crate::common::RegisterField::<
9197            14,
9198            0x1,
9199            1,
9200            0,
9201            p201pfs_ha::Isel,
9202            p201pfs_ha::Isel,
9203            P201PfsHa_SPEC,
9204            crate::common::RW,
9205        >::from_register(self, 0)
9206    }
9207
9208    #[doc = "Analog Input Enable"]
9209    #[inline(always)]
9210    pub fn asel(
9211        self,
9212    ) -> crate::common::RegisterField<
9213        15,
9214        0x1,
9215        1,
9216        0,
9217        p201pfs_ha::Asel,
9218        p201pfs_ha::Asel,
9219        P201PfsHa_SPEC,
9220        crate::common::RW,
9221    > {
9222        crate::common::RegisterField::<
9223            15,
9224            0x1,
9225            1,
9226            0,
9227            p201pfs_ha::Asel,
9228            p201pfs_ha::Asel,
9229            P201PfsHa_SPEC,
9230            crate::common::RW,
9231        >::from_register(self, 0)
9232    }
9233}
9234impl ::core::default::Default for P201PfsHa {
9235    #[inline(always)]
9236    fn default() -> P201PfsHa {
9237        <crate::RegValueT<P201PfsHa_SPEC> as RegisterValue<_>>::new(16)
9238    }
9239}
9240pub mod p201pfs_ha {
9241
9242    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9243    pub struct Podr_SPEC;
9244    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
9245    impl Podr {
9246        #[doc = "Output low"]
9247        pub const _0: Self = Self::new(0);
9248
9249        #[doc = "Output high"]
9250        pub const _1: Self = Self::new(1);
9251    }
9252    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9253    pub struct Pidr_SPEC;
9254    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
9255    impl Pidr {
9256        #[doc = "Low level"]
9257        pub const _0: Self = Self::new(0);
9258
9259        #[doc = "High level"]
9260        pub const _1: Self = Self::new(1);
9261    }
9262    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9263    pub struct Pdr_SPEC;
9264    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
9265    impl Pdr {
9266        #[doc = "Input (functions as an input pin)"]
9267        pub const _0: Self = Self::new(0);
9268
9269        #[doc = "Output (functions as an output pin)"]
9270        pub const _1: Self = Self::new(1);
9271    }
9272    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9273    pub struct Pcr_SPEC;
9274    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
9275    impl Pcr {
9276        #[doc = "Disable input pull-up"]
9277        pub const _0: Self = Self::new(0);
9278
9279        #[doc = "Enable input pull-up"]
9280        pub const _1: Self = Self::new(1);
9281    }
9282    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9283    pub struct Ncodr_SPEC;
9284    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
9285    impl Ncodr {
9286        #[doc = "Output CMOS"]
9287        pub const _0: Self = Self::new(0);
9288
9289        #[doc = "Output NMOS open-drain"]
9290        pub const _1: Self = Self::new(1);
9291    }
9292    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9293    pub struct Dscr_SPEC;
9294    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
9295    impl Dscr {
9296        #[doc = "Low drive"]
9297        pub const _00: Self = Self::new(0);
9298
9299        #[doc = "Middle drive"]
9300        pub const _01: Self = Self::new(1);
9301
9302        #[doc = "Setting prohibited"]
9303        pub const _10: Self = Self::new(2);
9304
9305        #[doc = "High drive"]
9306        pub const _11: Self = Self::new(3);
9307    }
9308    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9309    pub struct Eofr_SPEC;
9310    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
9311    impl Eofr {
9312        #[doc = "Don\'t care"]
9313        pub const _00: Self = Self::new(0);
9314
9315        #[doc = "Detect rising edge"]
9316        pub const _01: Self = Self::new(1);
9317
9318        #[doc = "Detect falling edge"]
9319        pub const _10: Self = Self::new(2);
9320
9321        #[doc = "Detect both edges"]
9322        pub const _11: Self = Self::new(3);
9323    }
9324    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9325    pub struct Isel_SPEC;
9326    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
9327    impl Isel {
9328        #[doc = "Do not use as IRQn input pin"]
9329        pub const _0: Self = Self::new(0);
9330
9331        #[doc = "Use as IRQn input pin"]
9332        pub const _1: Self = Self::new(1);
9333    }
9334    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9335    pub struct Asel_SPEC;
9336    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
9337    impl Asel {
9338        #[doc = "Do not use as analog pin"]
9339        pub const _0: Self = Self::new(0);
9340
9341        #[doc = "Use as analog pin"]
9342        pub const _1: Self = Self::new(1);
9343    }
9344}
9345#[doc(hidden)]
9346#[derive(Copy, Clone, Eq, PartialEq)]
9347pub struct P201PfsBy_SPEC;
9348impl crate::sealed::RegSpec for P201PfsBy_SPEC {
9349    type DataType = u8;
9350}
9351
9352#[doc = "Port 201 Pin Function Select Register"]
9353pub type P201PfsBy = crate::RegValueT<P201PfsBy_SPEC>;
9354
9355impl P201PfsBy {
9356    #[doc = "Port Output Data"]
9357    #[inline(always)]
9358    pub fn podr(
9359        self,
9360    ) -> crate::common::RegisterField<
9361        0,
9362        0x1,
9363        1,
9364        0,
9365        p201pfs_by::Podr,
9366        p201pfs_by::Podr,
9367        P201PfsBy_SPEC,
9368        crate::common::RW,
9369    > {
9370        crate::common::RegisterField::<
9371            0,
9372            0x1,
9373            1,
9374            0,
9375            p201pfs_by::Podr,
9376            p201pfs_by::Podr,
9377            P201PfsBy_SPEC,
9378            crate::common::RW,
9379        >::from_register(self, 0)
9380    }
9381
9382    #[doc = "Port State"]
9383    #[inline(always)]
9384    pub fn pidr(
9385        self,
9386    ) -> crate::common::RegisterField<
9387        1,
9388        0x1,
9389        1,
9390        0,
9391        p201pfs_by::Pidr,
9392        p201pfs_by::Pidr,
9393        P201PfsBy_SPEC,
9394        crate::common::R,
9395    > {
9396        crate::common::RegisterField::<
9397            1,
9398            0x1,
9399            1,
9400            0,
9401            p201pfs_by::Pidr,
9402            p201pfs_by::Pidr,
9403            P201PfsBy_SPEC,
9404            crate::common::R,
9405        >::from_register(self, 0)
9406    }
9407
9408    #[doc = "Port Direction"]
9409    #[inline(always)]
9410    pub fn pdr(
9411        self,
9412    ) -> crate::common::RegisterField<
9413        2,
9414        0x1,
9415        1,
9416        0,
9417        p201pfs_by::Pdr,
9418        p201pfs_by::Pdr,
9419        P201PfsBy_SPEC,
9420        crate::common::RW,
9421    > {
9422        crate::common::RegisterField::<
9423            2,
9424            0x1,
9425            1,
9426            0,
9427            p201pfs_by::Pdr,
9428            p201pfs_by::Pdr,
9429            P201PfsBy_SPEC,
9430            crate::common::RW,
9431        >::from_register(self, 0)
9432    }
9433
9434    #[doc = "Pull-up Control"]
9435    #[inline(always)]
9436    pub fn pcr(
9437        self,
9438    ) -> crate::common::RegisterField<
9439        4,
9440        0x1,
9441        1,
9442        0,
9443        p201pfs_by::Pcr,
9444        p201pfs_by::Pcr,
9445        P201PfsBy_SPEC,
9446        crate::common::RW,
9447    > {
9448        crate::common::RegisterField::<
9449            4,
9450            0x1,
9451            1,
9452            0,
9453            p201pfs_by::Pcr,
9454            p201pfs_by::Pcr,
9455            P201PfsBy_SPEC,
9456            crate::common::RW,
9457        >::from_register(self, 0)
9458    }
9459
9460    #[doc = "N-Channel Open-Drain Control"]
9461    #[inline(always)]
9462    pub fn ncodr(
9463        self,
9464    ) -> crate::common::RegisterField<
9465        6,
9466        0x1,
9467        1,
9468        0,
9469        p201pfs_by::Ncodr,
9470        p201pfs_by::Ncodr,
9471        P201PfsBy_SPEC,
9472        crate::common::RW,
9473    > {
9474        crate::common::RegisterField::<
9475            6,
9476            0x1,
9477            1,
9478            0,
9479            p201pfs_by::Ncodr,
9480            p201pfs_by::Ncodr,
9481            P201PfsBy_SPEC,
9482            crate::common::RW,
9483        >::from_register(self, 0)
9484    }
9485}
9486impl ::core::default::Default for P201PfsBy {
9487    #[inline(always)]
9488    fn default() -> P201PfsBy {
9489        <crate::RegValueT<P201PfsBy_SPEC> as RegisterValue<_>>::new(16)
9490    }
9491}
9492pub mod p201pfs_by {
9493
9494    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9495    pub struct Podr_SPEC;
9496    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
9497    impl Podr {
9498        #[doc = "Output low"]
9499        pub const _0: Self = Self::new(0);
9500
9501        #[doc = "Output high"]
9502        pub const _1: Self = Self::new(1);
9503    }
9504    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9505    pub struct Pidr_SPEC;
9506    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
9507    impl Pidr {
9508        #[doc = "Low level"]
9509        pub const _0: Self = Self::new(0);
9510
9511        #[doc = "High level"]
9512        pub const _1: Self = Self::new(1);
9513    }
9514    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9515    pub struct Pdr_SPEC;
9516    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
9517    impl Pdr {
9518        #[doc = "Input (functions as an input pin)"]
9519        pub const _0: Self = Self::new(0);
9520
9521        #[doc = "Output (functions as an output pin)"]
9522        pub const _1: Self = Self::new(1);
9523    }
9524    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9525    pub struct Pcr_SPEC;
9526    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
9527    impl Pcr {
9528        #[doc = "Disable input pull-up"]
9529        pub const _0: Self = Self::new(0);
9530
9531        #[doc = "Enable input pull-up"]
9532        pub const _1: Self = Self::new(1);
9533    }
9534    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9535    pub struct Ncodr_SPEC;
9536    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
9537    impl Ncodr {
9538        #[doc = "Output CMOS"]
9539        pub const _0: Self = Self::new(0);
9540
9541        #[doc = "Output NMOS open-drain"]
9542        pub const _1: Self = Self::new(1);
9543    }
9544}
9545#[doc(hidden)]
9546#[derive(Copy, Clone, Eq, PartialEq)]
9547pub struct P20Pfs_SPEC;
9548impl crate::sealed::RegSpec for P20Pfs_SPEC {
9549    type DataType = u32;
9550}
9551
9552#[doc = "Port 20%s Pin Function Select Register"]
9553pub type P20Pfs = crate::RegValueT<P20Pfs_SPEC>;
9554
9555impl P20Pfs {
9556    #[doc = "Port Output Data"]
9557    #[inline(always)]
9558    pub fn podr(
9559        self,
9560    ) -> crate::common::RegisterField<
9561        0,
9562        0x1,
9563        1,
9564        0,
9565        p20pfs::Podr,
9566        p20pfs::Podr,
9567        P20Pfs_SPEC,
9568        crate::common::RW,
9569    > {
9570        crate::common::RegisterField::<
9571            0,
9572            0x1,
9573            1,
9574            0,
9575            p20pfs::Podr,
9576            p20pfs::Podr,
9577            P20Pfs_SPEC,
9578            crate::common::RW,
9579        >::from_register(self, 0)
9580    }
9581
9582    #[doc = "Port State"]
9583    #[inline(always)]
9584    pub fn pidr(
9585        self,
9586    ) -> crate::common::RegisterField<
9587        1,
9588        0x1,
9589        1,
9590        0,
9591        p20pfs::Pidr,
9592        p20pfs::Pidr,
9593        P20Pfs_SPEC,
9594        crate::common::R,
9595    > {
9596        crate::common::RegisterField::<
9597            1,
9598            0x1,
9599            1,
9600            0,
9601            p20pfs::Pidr,
9602            p20pfs::Pidr,
9603            P20Pfs_SPEC,
9604            crate::common::R,
9605        >::from_register(self, 0)
9606    }
9607
9608    #[doc = "Port Direction"]
9609    #[inline(always)]
9610    pub fn pdr(
9611        self,
9612    ) -> crate::common::RegisterField<
9613        2,
9614        0x1,
9615        1,
9616        0,
9617        p20pfs::Pdr,
9618        p20pfs::Pdr,
9619        P20Pfs_SPEC,
9620        crate::common::RW,
9621    > {
9622        crate::common::RegisterField::<
9623            2,
9624            0x1,
9625            1,
9626            0,
9627            p20pfs::Pdr,
9628            p20pfs::Pdr,
9629            P20Pfs_SPEC,
9630            crate::common::RW,
9631        >::from_register(self, 0)
9632    }
9633
9634    #[doc = "Pull-up Control"]
9635    #[inline(always)]
9636    pub fn pcr(
9637        self,
9638    ) -> crate::common::RegisterField<
9639        4,
9640        0x1,
9641        1,
9642        0,
9643        p20pfs::Pcr,
9644        p20pfs::Pcr,
9645        P20Pfs_SPEC,
9646        crate::common::RW,
9647    > {
9648        crate::common::RegisterField::<
9649            4,
9650            0x1,
9651            1,
9652            0,
9653            p20pfs::Pcr,
9654            p20pfs::Pcr,
9655            P20Pfs_SPEC,
9656            crate::common::RW,
9657        >::from_register(self, 0)
9658    }
9659
9660    #[doc = "N-Channel Open-Drain Control"]
9661    #[inline(always)]
9662    pub fn ncodr(
9663        self,
9664    ) -> crate::common::RegisterField<
9665        6,
9666        0x1,
9667        1,
9668        0,
9669        p20pfs::Ncodr,
9670        p20pfs::Ncodr,
9671        P20Pfs_SPEC,
9672        crate::common::RW,
9673    > {
9674        crate::common::RegisterField::<
9675            6,
9676            0x1,
9677            1,
9678            0,
9679            p20pfs::Ncodr,
9680            p20pfs::Ncodr,
9681            P20Pfs_SPEC,
9682            crate::common::RW,
9683        >::from_register(self, 0)
9684    }
9685
9686    #[doc = "Port Drive Capability"]
9687    #[inline(always)]
9688    pub fn dscr(
9689        self,
9690    ) -> crate::common::RegisterField<
9691        10,
9692        0x3,
9693        1,
9694        0,
9695        p20pfs::Dscr,
9696        p20pfs::Dscr,
9697        P20Pfs_SPEC,
9698        crate::common::RW,
9699    > {
9700        crate::common::RegisterField::<
9701            10,
9702            0x3,
9703            1,
9704            0,
9705            p20pfs::Dscr,
9706            p20pfs::Dscr,
9707            P20Pfs_SPEC,
9708            crate::common::RW,
9709        >::from_register(self, 0)
9710    }
9711
9712    #[doc = "Event on Falling/Event on Rising"]
9713    #[inline(always)]
9714    pub fn eofr(
9715        self,
9716    ) -> crate::common::RegisterField<
9717        12,
9718        0x3,
9719        1,
9720        0,
9721        p20pfs::Eofr,
9722        p20pfs::Eofr,
9723        P20Pfs_SPEC,
9724        crate::common::RW,
9725    > {
9726        crate::common::RegisterField::<
9727            12,
9728            0x3,
9729            1,
9730            0,
9731            p20pfs::Eofr,
9732            p20pfs::Eofr,
9733            P20Pfs_SPEC,
9734            crate::common::RW,
9735        >::from_register(self, 0)
9736    }
9737
9738    #[doc = "IRQ Input Enable"]
9739    #[inline(always)]
9740    pub fn isel(
9741        self,
9742    ) -> crate::common::RegisterField<
9743        14,
9744        0x1,
9745        1,
9746        0,
9747        p20pfs::Isel,
9748        p20pfs::Isel,
9749        P20Pfs_SPEC,
9750        crate::common::RW,
9751    > {
9752        crate::common::RegisterField::<
9753            14,
9754            0x1,
9755            1,
9756            0,
9757            p20pfs::Isel,
9758            p20pfs::Isel,
9759            P20Pfs_SPEC,
9760            crate::common::RW,
9761        >::from_register(self, 0)
9762    }
9763
9764    #[doc = "Analog Input Enable"]
9765    #[inline(always)]
9766    pub fn asel(
9767        self,
9768    ) -> crate::common::RegisterField<
9769        15,
9770        0x1,
9771        1,
9772        0,
9773        p20pfs::Asel,
9774        p20pfs::Asel,
9775        P20Pfs_SPEC,
9776        crate::common::RW,
9777    > {
9778        crate::common::RegisterField::<
9779            15,
9780            0x1,
9781            1,
9782            0,
9783            p20pfs::Asel,
9784            p20pfs::Asel,
9785            P20Pfs_SPEC,
9786            crate::common::RW,
9787        >::from_register(self, 0)
9788    }
9789
9790    #[doc = "Port Mode Control"]
9791    #[inline(always)]
9792    pub fn pmr(
9793        self,
9794    ) -> crate::common::RegisterField<
9795        16,
9796        0x1,
9797        1,
9798        0,
9799        p20pfs::Pmr,
9800        p20pfs::Pmr,
9801        P20Pfs_SPEC,
9802        crate::common::RW,
9803    > {
9804        crate::common::RegisterField::<
9805            16,
9806            0x1,
9807            1,
9808            0,
9809            p20pfs::Pmr,
9810            p20pfs::Pmr,
9811            P20Pfs_SPEC,
9812            crate::common::RW,
9813        >::from_register(self, 0)
9814    }
9815
9816    #[doc = "Peripheral Select"]
9817    #[inline(always)]
9818    pub fn psel(
9819        self,
9820    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P20Pfs_SPEC, crate::common::RW> {
9821        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P20Pfs_SPEC,crate::common::RW>::from_register(self,0)
9822    }
9823}
9824impl ::core::default::Default for P20Pfs {
9825    #[inline(always)]
9826    fn default() -> P20Pfs {
9827        <crate::RegValueT<P20Pfs_SPEC> as RegisterValue<_>>::new(0)
9828    }
9829}
9830pub mod p20pfs {
9831
9832    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9833    pub struct Podr_SPEC;
9834    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
9835    impl Podr {
9836        #[doc = "Output low"]
9837        pub const _0: Self = Self::new(0);
9838
9839        #[doc = "Output high"]
9840        pub const _1: Self = Self::new(1);
9841    }
9842    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9843    pub struct Pidr_SPEC;
9844    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
9845    impl Pidr {
9846        #[doc = "Low level"]
9847        pub const _0: Self = Self::new(0);
9848
9849        #[doc = "High level"]
9850        pub const _1: Self = Self::new(1);
9851    }
9852    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9853    pub struct Pdr_SPEC;
9854    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
9855    impl Pdr {
9856        #[doc = "Input (functions as an input pin)"]
9857        pub const _0: Self = Self::new(0);
9858
9859        #[doc = "Output (functions as an output pin)"]
9860        pub const _1: Self = Self::new(1);
9861    }
9862    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9863    pub struct Pcr_SPEC;
9864    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
9865    impl Pcr {
9866        #[doc = "Disable input pull-up"]
9867        pub const _0: Self = Self::new(0);
9868
9869        #[doc = "Enable input pull-up"]
9870        pub const _1: Self = Self::new(1);
9871    }
9872    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9873    pub struct Ncodr_SPEC;
9874    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
9875    impl Ncodr {
9876        #[doc = "Output CMOS"]
9877        pub const _0: Self = Self::new(0);
9878
9879        #[doc = "Output NMOS open-drain"]
9880        pub const _1: Self = Self::new(1);
9881    }
9882    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9883    pub struct Dscr_SPEC;
9884    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
9885    impl Dscr {
9886        #[doc = "Low drive"]
9887        pub const _00: Self = Self::new(0);
9888
9889        #[doc = "Middle drive"]
9890        pub const _01: Self = Self::new(1);
9891
9892        #[doc = "Setting prohibited"]
9893        pub const _10: Self = Self::new(2);
9894
9895        #[doc = "High drive"]
9896        pub const _11: Self = Self::new(3);
9897    }
9898    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9899    pub struct Eofr_SPEC;
9900    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
9901    impl Eofr {
9902        #[doc = "Don\'t care"]
9903        pub const _00: Self = Self::new(0);
9904
9905        #[doc = "Detect rising edge"]
9906        pub const _01: Self = Self::new(1);
9907
9908        #[doc = "Detect falling edge"]
9909        pub const _10: Self = Self::new(2);
9910
9911        #[doc = "Detect both edges"]
9912        pub const _11: Self = Self::new(3);
9913    }
9914    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9915    pub struct Isel_SPEC;
9916    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
9917    impl Isel {
9918        #[doc = "Do not use as IRQn input pin"]
9919        pub const _0: Self = Self::new(0);
9920
9921        #[doc = "Use as IRQn input pin"]
9922        pub const _1: Self = Self::new(1);
9923    }
9924    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9925    pub struct Asel_SPEC;
9926    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
9927    impl Asel {
9928        #[doc = "Do not use as analog pin"]
9929        pub const _0: Self = Self::new(0);
9930
9931        #[doc = "Use as analog pin"]
9932        pub const _1: Self = Self::new(1);
9933    }
9934    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9935    pub struct Pmr_SPEC;
9936    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
9937    impl Pmr {
9938        #[doc = "Use as general I/O pin"]
9939        pub const _0: Self = Self::new(0);
9940
9941        #[doc = "Use as I/O port for peripheral functions"]
9942        pub const _1: Self = Self::new(1);
9943    }
9944}
9945#[doc(hidden)]
9946#[derive(Copy, Clone, Eq, PartialEq)]
9947pub struct P20PfsHa_SPEC;
9948impl crate::sealed::RegSpec for P20PfsHa_SPEC {
9949    type DataType = u16;
9950}
9951
9952#[doc = "Port 20%s Pin Function Select Register"]
9953pub type P20PfsHa = crate::RegValueT<P20PfsHa_SPEC>;
9954
9955impl P20PfsHa {
9956    #[doc = "Port Output Data"]
9957    #[inline(always)]
9958    pub fn podr(
9959        self,
9960    ) -> crate::common::RegisterField<
9961        0,
9962        0x1,
9963        1,
9964        0,
9965        p20pfs_ha::Podr,
9966        p20pfs_ha::Podr,
9967        P20PfsHa_SPEC,
9968        crate::common::RW,
9969    > {
9970        crate::common::RegisterField::<
9971            0,
9972            0x1,
9973            1,
9974            0,
9975            p20pfs_ha::Podr,
9976            p20pfs_ha::Podr,
9977            P20PfsHa_SPEC,
9978            crate::common::RW,
9979        >::from_register(self, 0)
9980    }
9981
9982    #[doc = "Port State"]
9983    #[inline(always)]
9984    pub fn pidr(
9985        self,
9986    ) -> crate::common::RegisterField<
9987        1,
9988        0x1,
9989        1,
9990        0,
9991        p20pfs_ha::Pidr,
9992        p20pfs_ha::Pidr,
9993        P20PfsHa_SPEC,
9994        crate::common::R,
9995    > {
9996        crate::common::RegisterField::<
9997            1,
9998            0x1,
9999            1,
10000            0,
10001            p20pfs_ha::Pidr,
10002            p20pfs_ha::Pidr,
10003            P20PfsHa_SPEC,
10004            crate::common::R,
10005        >::from_register(self, 0)
10006    }
10007
10008    #[doc = "Port Direction"]
10009    #[inline(always)]
10010    pub fn pdr(
10011        self,
10012    ) -> crate::common::RegisterField<
10013        2,
10014        0x1,
10015        1,
10016        0,
10017        p20pfs_ha::Pdr,
10018        p20pfs_ha::Pdr,
10019        P20PfsHa_SPEC,
10020        crate::common::RW,
10021    > {
10022        crate::common::RegisterField::<
10023            2,
10024            0x1,
10025            1,
10026            0,
10027            p20pfs_ha::Pdr,
10028            p20pfs_ha::Pdr,
10029            P20PfsHa_SPEC,
10030            crate::common::RW,
10031        >::from_register(self, 0)
10032    }
10033
10034    #[doc = "Pull-up Control"]
10035    #[inline(always)]
10036    pub fn pcr(
10037        self,
10038    ) -> crate::common::RegisterField<
10039        4,
10040        0x1,
10041        1,
10042        0,
10043        p20pfs_ha::Pcr,
10044        p20pfs_ha::Pcr,
10045        P20PfsHa_SPEC,
10046        crate::common::RW,
10047    > {
10048        crate::common::RegisterField::<
10049            4,
10050            0x1,
10051            1,
10052            0,
10053            p20pfs_ha::Pcr,
10054            p20pfs_ha::Pcr,
10055            P20PfsHa_SPEC,
10056            crate::common::RW,
10057        >::from_register(self, 0)
10058    }
10059
10060    #[doc = "N-Channel Open-Drain Control"]
10061    #[inline(always)]
10062    pub fn ncodr(
10063        self,
10064    ) -> crate::common::RegisterField<
10065        6,
10066        0x1,
10067        1,
10068        0,
10069        p20pfs_ha::Ncodr,
10070        p20pfs_ha::Ncodr,
10071        P20PfsHa_SPEC,
10072        crate::common::RW,
10073    > {
10074        crate::common::RegisterField::<
10075            6,
10076            0x1,
10077            1,
10078            0,
10079            p20pfs_ha::Ncodr,
10080            p20pfs_ha::Ncodr,
10081            P20PfsHa_SPEC,
10082            crate::common::RW,
10083        >::from_register(self, 0)
10084    }
10085
10086    #[doc = "Port Drive Capability"]
10087    #[inline(always)]
10088    pub fn dscr(
10089        self,
10090    ) -> crate::common::RegisterField<
10091        10,
10092        0x3,
10093        1,
10094        0,
10095        p20pfs_ha::Dscr,
10096        p20pfs_ha::Dscr,
10097        P20PfsHa_SPEC,
10098        crate::common::RW,
10099    > {
10100        crate::common::RegisterField::<
10101            10,
10102            0x3,
10103            1,
10104            0,
10105            p20pfs_ha::Dscr,
10106            p20pfs_ha::Dscr,
10107            P20PfsHa_SPEC,
10108            crate::common::RW,
10109        >::from_register(self, 0)
10110    }
10111
10112    #[doc = "Event on Falling/Event on Rising"]
10113    #[inline(always)]
10114    pub fn eofr(
10115        self,
10116    ) -> crate::common::RegisterField<
10117        12,
10118        0x3,
10119        1,
10120        0,
10121        p20pfs_ha::Eofr,
10122        p20pfs_ha::Eofr,
10123        P20PfsHa_SPEC,
10124        crate::common::RW,
10125    > {
10126        crate::common::RegisterField::<
10127            12,
10128            0x3,
10129            1,
10130            0,
10131            p20pfs_ha::Eofr,
10132            p20pfs_ha::Eofr,
10133            P20PfsHa_SPEC,
10134            crate::common::RW,
10135        >::from_register(self, 0)
10136    }
10137
10138    #[doc = "IRQ Input Enable"]
10139    #[inline(always)]
10140    pub fn isel(
10141        self,
10142    ) -> crate::common::RegisterField<
10143        14,
10144        0x1,
10145        1,
10146        0,
10147        p20pfs_ha::Isel,
10148        p20pfs_ha::Isel,
10149        P20PfsHa_SPEC,
10150        crate::common::RW,
10151    > {
10152        crate::common::RegisterField::<
10153            14,
10154            0x1,
10155            1,
10156            0,
10157            p20pfs_ha::Isel,
10158            p20pfs_ha::Isel,
10159            P20PfsHa_SPEC,
10160            crate::common::RW,
10161        >::from_register(self, 0)
10162    }
10163
10164    #[doc = "Analog Input Enable"]
10165    #[inline(always)]
10166    pub fn asel(
10167        self,
10168    ) -> crate::common::RegisterField<
10169        15,
10170        0x1,
10171        1,
10172        0,
10173        p20pfs_ha::Asel,
10174        p20pfs_ha::Asel,
10175        P20PfsHa_SPEC,
10176        crate::common::RW,
10177    > {
10178        crate::common::RegisterField::<
10179            15,
10180            0x1,
10181            1,
10182            0,
10183            p20pfs_ha::Asel,
10184            p20pfs_ha::Asel,
10185            P20PfsHa_SPEC,
10186            crate::common::RW,
10187        >::from_register(self, 0)
10188    }
10189}
10190impl ::core::default::Default for P20PfsHa {
10191    #[inline(always)]
10192    fn default() -> P20PfsHa {
10193        <crate::RegValueT<P20PfsHa_SPEC> as RegisterValue<_>>::new(0)
10194    }
10195}
10196pub mod p20pfs_ha {
10197
10198    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10199    pub struct Podr_SPEC;
10200    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
10201    impl Podr {
10202        #[doc = "Output low"]
10203        pub const _0: Self = Self::new(0);
10204
10205        #[doc = "Output high"]
10206        pub const _1: Self = Self::new(1);
10207    }
10208    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10209    pub struct Pidr_SPEC;
10210    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
10211    impl Pidr {
10212        #[doc = "Low level"]
10213        pub const _0: Self = Self::new(0);
10214
10215        #[doc = "High level"]
10216        pub const _1: Self = Self::new(1);
10217    }
10218    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10219    pub struct Pdr_SPEC;
10220    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
10221    impl Pdr {
10222        #[doc = "Input (functions as an input pin)"]
10223        pub const _0: Self = Self::new(0);
10224
10225        #[doc = "Output (functions as an output pin)"]
10226        pub const _1: Self = Self::new(1);
10227    }
10228    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10229    pub struct Pcr_SPEC;
10230    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
10231    impl Pcr {
10232        #[doc = "Disable input pull-up"]
10233        pub const _0: Self = Self::new(0);
10234
10235        #[doc = "Enable input pull-up"]
10236        pub const _1: Self = Self::new(1);
10237    }
10238    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10239    pub struct Ncodr_SPEC;
10240    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
10241    impl Ncodr {
10242        #[doc = "Output CMOS"]
10243        pub const _0: Self = Self::new(0);
10244
10245        #[doc = "Output NMOS open-drain"]
10246        pub const _1: Self = Self::new(1);
10247    }
10248    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10249    pub struct Dscr_SPEC;
10250    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
10251    impl Dscr {
10252        #[doc = "Low drive"]
10253        pub const _00: Self = Self::new(0);
10254
10255        #[doc = "Middle drive"]
10256        pub const _01: Self = Self::new(1);
10257
10258        #[doc = "Setting prohibited"]
10259        pub const _10: Self = Self::new(2);
10260
10261        #[doc = "High drive"]
10262        pub const _11: Self = Self::new(3);
10263    }
10264    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10265    pub struct Eofr_SPEC;
10266    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
10267    impl Eofr {
10268        #[doc = "Don\'t care"]
10269        pub const _00: Self = Self::new(0);
10270
10271        #[doc = "Detect rising edge"]
10272        pub const _01: Self = Self::new(1);
10273
10274        #[doc = "Detect falling edge"]
10275        pub const _10: Self = Self::new(2);
10276
10277        #[doc = "Detect both edges"]
10278        pub const _11: Self = Self::new(3);
10279    }
10280    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10281    pub struct Isel_SPEC;
10282    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
10283    impl Isel {
10284        #[doc = "Do not use as IRQn input pin"]
10285        pub const _0: Self = Self::new(0);
10286
10287        #[doc = "Use as IRQn input pin"]
10288        pub const _1: Self = Self::new(1);
10289    }
10290    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10291    pub struct Asel_SPEC;
10292    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
10293    impl Asel {
10294        #[doc = "Do not use as analog pin"]
10295        pub const _0: Self = Self::new(0);
10296
10297        #[doc = "Use as analog pin"]
10298        pub const _1: Self = Self::new(1);
10299    }
10300}
10301#[doc(hidden)]
10302#[derive(Copy, Clone, Eq, PartialEq)]
10303pub struct P20PfsBy_SPEC;
10304impl crate::sealed::RegSpec for P20PfsBy_SPEC {
10305    type DataType = u8;
10306}
10307
10308#[doc = "Port 20%s Pin Function Select Register"]
10309pub type P20PfsBy = crate::RegValueT<P20PfsBy_SPEC>;
10310
10311impl P20PfsBy {
10312    #[doc = "Port Output Data"]
10313    #[inline(always)]
10314    pub fn podr(
10315        self,
10316    ) -> crate::common::RegisterField<
10317        0,
10318        0x1,
10319        1,
10320        0,
10321        p20pfs_by::Podr,
10322        p20pfs_by::Podr,
10323        P20PfsBy_SPEC,
10324        crate::common::RW,
10325    > {
10326        crate::common::RegisterField::<
10327            0,
10328            0x1,
10329            1,
10330            0,
10331            p20pfs_by::Podr,
10332            p20pfs_by::Podr,
10333            P20PfsBy_SPEC,
10334            crate::common::RW,
10335        >::from_register(self, 0)
10336    }
10337
10338    #[doc = "Port State"]
10339    #[inline(always)]
10340    pub fn pidr(
10341        self,
10342    ) -> crate::common::RegisterField<
10343        1,
10344        0x1,
10345        1,
10346        0,
10347        p20pfs_by::Pidr,
10348        p20pfs_by::Pidr,
10349        P20PfsBy_SPEC,
10350        crate::common::R,
10351    > {
10352        crate::common::RegisterField::<
10353            1,
10354            0x1,
10355            1,
10356            0,
10357            p20pfs_by::Pidr,
10358            p20pfs_by::Pidr,
10359            P20PfsBy_SPEC,
10360            crate::common::R,
10361        >::from_register(self, 0)
10362    }
10363
10364    #[doc = "Port Direction"]
10365    #[inline(always)]
10366    pub fn pdr(
10367        self,
10368    ) -> crate::common::RegisterField<
10369        2,
10370        0x1,
10371        1,
10372        0,
10373        p20pfs_by::Pdr,
10374        p20pfs_by::Pdr,
10375        P20PfsBy_SPEC,
10376        crate::common::RW,
10377    > {
10378        crate::common::RegisterField::<
10379            2,
10380            0x1,
10381            1,
10382            0,
10383            p20pfs_by::Pdr,
10384            p20pfs_by::Pdr,
10385            P20PfsBy_SPEC,
10386            crate::common::RW,
10387        >::from_register(self, 0)
10388    }
10389
10390    #[doc = "Pull-up Control"]
10391    #[inline(always)]
10392    pub fn pcr(
10393        self,
10394    ) -> crate::common::RegisterField<
10395        4,
10396        0x1,
10397        1,
10398        0,
10399        p20pfs_by::Pcr,
10400        p20pfs_by::Pcr,
10401        P20PfsBy_SPEC,
10402        crate::common::RW,
10403    > {
10404        crate::common::RegisterField::<
10405            4,
10406            0x1,
10407            1,
10408            0,
10409            p20pfs_by::Pcr,
10410            p20pfs_by::Pcr,
10411            P20PfsBy_SPEC,
10412            crate::common::RW,
10413        >::from_register(self, 0)
10414    }
10415
10416    #[doc = "N-Channel Open-Drain Control"]
10417    #[inline(always)]
10418    pub fn ncodr(
10419        self,
10420    ) -> crate::common::RegisterField<
10421        6,
10422        0x1,
10423        1,
10424        0,
10425        p20pfs_by::Ncodr,
10426        p20pfs_by::Ncodr,
10427        P20PfsBy_SPEC,
10428        crate::common::RW,
10429    > {
10430        crate::common::RegisterField::<
10431            6,
10432            0x1,
10433            1,
10434            0,
10435            p20pfs_by::Ncodr,
10436            p20pfs_by::Ncodr,
10437            P20PfsBy_SPEC,
10438            crate::common::RW,
10439        >::from_register(self, 0)
10440    }
10441}
10442impl ::core::default::Default for P20PfsBy {
10443    #[inline(always)]
10444    fn default() -> P20PfsBy {
10445        <crate::RegValueT<P20PfsBy_SPEC> as RegisterValue<_>>::new(0)
10446    }
10447}
10448pub mod p20pfs_by {
10449
10450    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10451    pub struct Podr_SPEC;
10452    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
10453    impl Podr {
10454        #[doc = "Output low"]
10455        pub const _0: Self = Self::new(0);
10456
10457        #[doc = "Output high"]
10458        pub const _1: Self = Self::new(1);
10459    }
10460    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10461    pub struct Pidr_SPEC;
10462    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
10463    impl Pidr {
10464        #[doc = "Low level"]
10465        pub const _0: Self = Self::new(0);
10466
10467        #[doc = "High level"]
10468        pub const _1: Self = Self::new(1);
10469    }
10470    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10471    pub struct Pdr_SPEC;
10472    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
10473    impl Pdr {
10474        #[doc = "Input (functions as an input pin)"]
10475        pub const _0: Self = Self::new(0);
10476
10477        #[doc = "Output (functions as an output pin)"]
10478        pub const _1: Self = Self::new(1);
10479    }
10480    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10481    pub struct Pcr_SPEC;
10482    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
10483    impl Pcr {
10484        #[doc = "Disable input pull-up"]
10485        pub const _0: Self = Self::new(0);
10486
10487        #[doc = "Enable input pull-up"]
10488        pub const _1: Self = Self::new(1);
10489    }
10490    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10491    pub struct Ncodr_SPEC;
10492    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
10493    impl Ncodr {
10494        #[doc = "Output CMOS"]
10495        pub const _0: Self = Self::new(0);
10496
10497        #[doc = "Output NMOS open-drain"]
10498        pub const _1: Self = Self::new(1);
10499    }
10500}
10501#[doc(hidden)]
10502#[derive(Copy, Clone, Eq, PartialEq)]
10503pub struct P2Pfs_SPEC;
10504impl crate::sealed::RegSpec for P2Pfs_SPEC {
10505    type DataType = u32;
10506}
10507
10508#[doc = "Port 2%s Pin Function Select Register"]
10509pub type P2Pfs = crate::RegValueT<P2Pfs_SPEC>;
10510
10511impl P2Pfs {
10512    #[doc = "Port Output Data"]
10513    #[inline(always)]
10514    pub fn podr(
10515        self,
10516    ) -> crate::common::RegisterField<
10517        0,
10518        0x1,
10519        1,
10520        0,
10521        p2pfs::Podr,
10522        p2pfs::Podr,
10523        P2Pfs_SPEC,
10524        crate::common::RW,
10525    > {
10526        crate::common::RegisterField::<
10527            0,
10528            0x1,
10529            1,
10530            0,
10531            p2pfs::Podr,
10532            p2pfs::Podr,
10533            P2Pfs_SPEC,
10534            crate::common::RW,
10535        >::from_register(self, 0)
10536    }
10537
10538    #[doc = "Port State"]
10539    #[inline(always)]
10540    pub fn pidr(
10541        self,
10542    ) -> crate::common::RegisterField<
10543        1,
10544        0x1,
10545        1,
10546        0,
10547        p2pfs::Pidr,
10548        p2pfs::Pidr,
10549        P2Pfs_SPEC,
10550        crate::common::R,
10551    > {
10552        crate::common::RegisterField::<
10553            1,
10554            0x1,
10555            1,
10556            0,
10557            p2pfs::Pidr,
10558            p2pfs::Pidr,
10559            P2Pfs_SPEC,
10560            crate::common::R,
10561        >::from_register(self, 0)
10562    }
10563
10564    #[doc = "Port Direction"]
10565    #[inline(always)]
10566    pub fn pdr(
10567        self,
10568    ) -> crate::common::RegisterField<
10569        2,
10570        0x1,
10571        1,
10572        0,
10573        p2pfs::Pdr,
10574        p2pfs::Pdr,
10575        P2Pfs_SPEC,
10576        crate::common::RW,
10577    > {
10578        crate::common::RegisterField::<
10579            2,
10580            0x1,
10581            1,
10582            0,
10583            p2pfs::Pdr,
10584            p2pfs::Pdr,
10585            P2Pfs_SPEC,
10586            crate::common::RW,
10587        >::from_register(self, 0)
10588    }
10589
10590    #[doc = "Pull-up Control"]
10591    #[inline(always)]
10592    pub fn pcr(
10593        self,
10594    ) -> crate::common::RegisterField<
10595        4,
10596        0x1,
10597        1,
10598        0,
10599        p2pfs::Pcr,
10600        p2pfs::Pcr,
10601        P2Pfs_SPEC,
10602        crate::common::RW,
10603    > {
10604        crate::common::RegisterField::<
10605            4,
10606            0x1,
10607            1,
10608            0,
10609            p2pfs::Pcr,
10610            p2pfs::Pcr,
10611            P2Pfs_SPEC,
10612            crate::common::RW,
10613        >::from_register(self, 0)
10614    }
10615
10616    #[doc = "N-Channel Open-Drain Control"]
10617    #[inline(always)]
10618    pub fn ncodr(
10619        self,
10620    ) -> crate::common::RegisterField<
10621        6,
10622        0x1,
10623        1,
10624        0,
10625        p2pfs::Ncodr,
10626        p2pfs::Ncodr,
10627        P2Pfs_SPEC,
10628        crate::common::RW,
10629    > {
10630        crate::common::RegisterField::<
10631            6,
10632            0x1,
10633            1,
10634            0,
10635            p2pfs::Ncodr,
10636            p2pfs::Ncodr,
10637            P2Pfs_SPEC,
10638            crate::common::RW,
10639        >::from_register(self, 0)
10640    }
10641
10642    #[doc = "Port Drive Capability"]
10643    #[inline(always)]
10644    pub fn dscr(
10645        self,
10646    ) -> crate::common::RegisterField<
10647        10,
10648        0x3,
10649        1,
10650        0,
10651        p2pfs::Dscr,
10652        p2pfs::Dscr,
10653        P2Pfs_SPEC,
10654        crate::common::RW,
10655    > {
10656        crate::common::RegisterField::<
10657            10,
10658            0x3,
10659            1,
10660            0,
10661            p2pfs::Dscr,
10662            p2pfs::Dscr,
10663            P2Pfs_SPEC,
10664            crate::common::RW,
10665        >::from_register(self, 0)
10666    }
10667
10668    #[doc = "Event on Falling/Event on Rising"]
10669    #[inline(always)]
10670    pub fn eofr(
10671        self,
10672    ) -> crate::common::RegisterField<
10673        12,
10674        0x3,
10675        1,
10676        0,
10677        p2pfs::Eofr,
10678        p2pfs::Eofr,
10679        P2Pfs_SPEC,
10680        crate::common::RW,
10681    > {
10682        crate::common::RegisterField::<
10683            12,
10684            0x3,
10685            1,
10686            0,
10687            p2pfs::Eofr,
10688            p2pfs::Eofr,
10689            P2Pfs_SPEC,
10690            crate::common::RW,
10691        >::from_register(self, 0)
10692    }
10693
10694    #[doc = "IRQ Input Enable"]
10695    #[inline(always)]
10696    pub fn isel(
10697        self,
10698    ) -> crate::common::RegisterField<
10699        14,
10700        0x1,
10701        1,
10702        0,
10703        p2pfs::Isel,
10704        p2pfs::Isel,
10705        P2Pfs_SPEC,
10706        crate::common::RW,
10707    > {
10708        crate::common::RegisterField::<
10709            14,
10710            0x1,
10711            1,
10712            0,
10713            p2pfs::Isel,
10714            p2pfs::Isel,
10715            P2Pfs_SPEC,
10716            crate::common::RW,
10717        >::from_register(self, 0)
10718    }
10719
10720    #[doc = "Analog Input Enable"]
10721    #[inline(always)]
10722    pub fn asel(
10723        self,
10724    ) -> crate::common::RegisterField<
10725        15,
10726        0x1,
10727        1,
10728        0,
10729        p2pfs::Asel,
10730        p2pfs::Asel,
10731        P2Pfs_SPEC,
10732        crate::common::RW,
10733    > {
10734        crate::common::RegisterField::<
10735            15,
10736            0x1,
10737            1,
10738            0,
10739            p2pfs::Asel,
10740            p2pfs::Asel,
10741            P2Pfs_SPEC,
10742            crate::common::RW,
10743        >::from_register(self, 0)
10744    }
10745
10746    #[doc = "Port Mode Control"]
10747    #[inline(always)]
10748    pub fn pmr(
10749        self,
10750    ) -> crate::common::RegisterField<
10751        16,
10752        0x1,
10753        1,
10754        0,
10755        p2pfs::Pmr,
10756        p2pfs::Pmr,
10757        P2Pfs_SPEC,
10758        crate::common::RW,
10759    > {
10760        crate::common::RegisterField::<
10761            16,
10762            0x1,
10763            1,
10764            0,
10765            p2pfs::Pmr,
10766            p2pfs::Pmr,
10767            P2Pfs_SPEC,
10768            crate::common::RW,
10769        >::from_register(self, 0)
10770    }
10771
10772    #[doc = "Peripheral Select"]
10773    #[inline(always)]
10774    pub fn psel(
10775        self,
10776    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P2Pfs_SPEC, crate::common::RW> {
10777        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P2Pfs_SPEC,crate::common::RW>::from_register(self,0)
10778    }
10779}
10780impl ::core::default::Default for P2Pfs {
10781    #[inline(always)]
10782    fn default() -> P2Pfs {
10783        <crate::RegValueT<P2Pfs_SPEC> as RegisterValue<_>>::new(0)
10784    }
10785}
10786pub mod p2pfs {
10787
10788    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10789    pub struct Podr_SPEC;
10790    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
10791    impl Podr {
10792        #[doc = "Output low"]
10793        pub const _0: Self = Self::new(0);
10794
10795        #[doc = "Output high"]
10796        pub const _1: Self = Self::new(1);
10797    }
10798    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10799    pub struct Pidr_SPEC;
10800    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
10801    impl Pidr {
10802        #[doc = "Low level"]
10803        pub const _0: Self = Self::new(0);
10804
10805        #[doc = "High level"]
10806        pub const _1: Self = Self::new(1);
10807    }
10808    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10809    pub struct Pdr_SPEC;
10810    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
10811    impl Pdr {
10812        #[doc = "Input (functions as an input pin)"]
10813        pub const _0: Self = Self::new(0);
10814
10815        #[doc = "Output (functions as an output pin)"]
10816        pub const _1: Self = Self::new(1);
10817    }
10818    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10819    pub struct Pcr_SPEC;
10820    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
10821    impl Pcr {
10822        #[doc = "Disable input pull-up"]
10823        pub const _0: Self = Self::new(0);
10824
10825        #[doc = "Enable input pull-up"]
10826        pub const _1: Self = Self::new(1);
10827    }
10828    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10829    pub struct Ncodr_SPEC;
10830    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
10831    impl Ncodr {
10832        #[doc = "Output CMOS"]
10833        pub const _0: Self = Self::new(0);
10834
10835        #[doc = "Output NMOS open-drain"]
10836        pub const _1: Self = Self::new(1);
10837    }
10838    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10839    pub struct Dscr_SPEC;
10840    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
10841    impl Dscr {
10842        #[doc = "Low drive"]
10843        pub const _00: Self = Self::new(0);
10844
10845        #[doc = "Middle drive"]
10846        pub const _01: Self = Self::new(1);
10847
10848        #[doc = "Setting prohibited"]
10849        pub const _10: Self = Self::new(2);
10850
10851        #[doc = "High drive"]
10852        pub const _11: Self = Self::new(3);
10853    }
10854    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10855    pub struct Eofr_SPEC;
10856    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
10857    impl Eofr {
10858        #[doc = "Don\'t care"]
10859        pub const _00: Self = Self::new(0);
10860
10861        #[doc = "Detect rising edge"]
10862        pub const _01: Self = Self::new(1);
10863
10864        #[doc = "Detect falling edge"]
10865        pub const _10: Self = Self::new(2);
10866
10867        #[doc = "Detect both edges"]
10868        pub const _11: Self = Self::new(3);
10869    }
10870    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10871    pub struct Isel_SPEC;
10872    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
10873    impl Isel {
10874        #[doc = "Do not use as IRQn input pin"]
10875        pub const _0: Self = Self::new(0);
10876
10877        #[doc = "Use as IRQn input pin"]
10878        pub const _1: Self = Self::new(1);
10879    }
10880    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10881    pub struct Asel_SPEC;
10882    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
10883    impl Asel {
10884        #[doc = "Do not use as analog pin"]
10885        pub const _0: Self = Self::new(0);
10886
10887        #[doc = "Use as analog pin"]
10888        pub const _1: Self = Self::new(1);
10889    }
10890    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10891    pub struct Pmr_SPEC;
10892    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
10893    impl Pmr {
10894        #[doc = "Use as general I/O pin"]
10895        pub const _0: Self = Self::new(0);
10896
10897        #[doc = "Use as I/O port for peripheral functions"]
10898        pub const _1: Self = Self::new(1);
10899    }
10900}
10901#[doc(hidden)]
10902#[derive(Copy, Clone, Eq, PartialEq)]
10903pub struct P2PfsHa_SPEC;
10904impl crate::sealed::RegSpec for P2PfsHa_SPEC {
10905    type DataType = u16;
10906}
10907
10908#[doc = "Port 2%s Pin Function Select Register"]
10909pub type P2PfsHa = crate::RegValueT<P2PfsHa_SPEC>;
10910
10911impl P2PfsHa {
10912    #[doc = "Port Output Data"]
10913    #[inline(always)]
10914    pub fn podr(
10915        self,
10916    ) -> crate::common::RegisterField<
10917        0,
10918        0x1,
10919        1,
10920        0,
10921        p2pfs_ha::Podr,
10922        p2pfs_ha::Podr,
10923        P2PfsHa_SPEC,
10924        crate::common::RW,
10925    > {
10926        crate::common::RegisterField::<
10927            0,
10928            0x1,
10929            1,
10930            0,
10931            p2pfs_ha::Podr,
10932            p2pfs_ha::Podr,
10933            P2PfsHa_SPEC,
10934            crate::common::RW,
10935        >::from_register(self, 0)
10936    }
10937
10938    #[doc = "Port State"]
10939    #[inline(always)]
10940    pub fn pidr(
10941        self,
10942    ) -> crate::common::RegisterField<
10943        1,
10944        0x1,
10945        1,
10946        0,
10947        p2pfs_ha::Pidr,
10948        p2pfs_ha::Pidr,
10949        P2PfsHa_SPEC,
10950        crate::common::R,
10951    > {
10952        crate::common::RegisterField::<
10953            1,
10954            0x1,
10955            1,
10956            0,
10957            p2pfs_ha::Pidr,
10958            p2pfs_ha::Pidr,
10959            P2PfsHa_SPEC,
10960            crate::common::R,
10961        >::from_register(self, 0)
10962    }
10963
10964    #[doc = "Port Direction"]
10965    #[inline(always)]
10966    pub fn pdr(
10967        self,
10968    ) -> crate::common::RegisterField<
10969        2,
10970        0x1,
10971        1,
10972        0,
10973        p2pfs_ha::Pdr,
10974        p2pfs_ha::Pdr,
10975        P2PfsHa_SPEC,
10976        crate::common::RW,
10977    > {
10978        crate::common::RegisterField::<
10979            2,
10980            0x1,
10981            1,
10982            0,
10983            p2pfs_ha::Pdr,
10984            p2pfs_ha::Pdr,
10985            P2PfsHa_SPEC,
10986            crate::common::RW,
10987        >::from_register(self, 0)
10988    }
10989
10990    #[doc = "Pull-up Control"]
10991    #[inline(always)]
10992    pub fn pcr(
10993        self,
10994    ) -> crate::common::RegisterField<
10995        4,
10996        0x1,
10997        1,
10998        0,
10999        p2pfs_ha::Pcr,
11000        p2pfs_ha::Pcr,
11001        P2PfsHa_SPEC,
11002        crate::common::RW,
11003    > {
11004        crate::common::RegisterField::<
11005            4,
11006            0x1,
11007            1,
11008            0,
11009            p2pfs_ha::Pcr,
11010            p2pfs_ha::Pcr,
11011            P2PfsHa_SPEC,
11012            crate::common::RW,
11013        >::from_register(self, 0)
11014    }
11015
11016    #[doc = "N-Channel Open-Drain Control"]
11017    #[inline(always)]
11018    pub fn ncodr(
11019        self,
11020    ) -> crate::common::RegisterField<
11021        6,
11022        0x1,
11023        1,
11024        0,
11025        p2pfs_ha::Ncodr,
11026        p2pfs_ha::Ncodr,
11027        P2PfsHa_SPEC,
11028        crate::common::RW,
11029    > {
11030        crate::common::RegisterField::<
11031            6,
11032            0x1,
11033            1,
11034            0,
11035            p2pfs_ha::Ncodr,
11036            p2pfs_ha::Ncodr,
11037            P2PfsHa_SPEC,
11038            crate::common::RW,
11039        >::from_register(self, 0)
11040    }
11041
11042    #[doc = "Port Drive Capability"]
11043    #[inline(always)]
11044    pub fn dscr(
11045        self,
11046    ) -> crate::common::RegisterField<
11047        10,
11048        0x3,
11049        1,
11050        0,
11051        p2pfs_ha::Dscr,
11052        p2pfs_ha::Dscr,
11053        P2PfsHa_SPEC,
11054        crate::common::RW,
11055    > {
11056        crate::common::RegisterField::<
11057            10,
11058            0x3,
11059            1,
11060            0,
11061            p2pfs_ha::Dscr,
11062            p2pfs_ha::Dscr,
11063            P2PfsHa_SPEC,
11064            crate::common::RW,
11065        >::from_register(self, 0)
11066    }
11067
11068    #[doc = "Event on Falling/Event on Rising"]
11069    #[inline(always)]
11070    pub fn eofr(
11071        self,
11072    ) -> crate::common::RegisterField<
11073        12,
11074        0x3,
11075        1,
11076        0,
11077        p2pfs_ha::Eofr,
11078        p2pfs_ha::Eofr,
11079        P2PfsHa_SPEC,
11080        crate::common::RW,
11081    > {
11082        crate::common::RegisterField::<
11083            12,
11084            0x3,
11085            1,
11086            0,
11087            p2pfs_ha::Eofr,
11088            p2pfs_ha::Eofr,
11089            P2PfsHa_SPEC,
11090            crate::common::RW,
11091        >::from_register(self, 0)
11092    }
11093
11094    #[doc = "IRQ Input Enable"]
11095    #[inline(always)]
11096    pub fn isel(
11097        self,
11098    ) -> crate::common::RegisterField<
11099        14,
11100        0x1,
11101        1,
11102        0,
11103        p2pfs_ha::Isel,
11104        p2pfs_ha::Isel,
11105        P2PfsHa_SPEC,
11106        crate::common::RW,
11107    > {
11108        crate::common::RegisterField::<
11109            14,
11110            0x1,
11111            1,
11112            0,
11113            p2pfs_ha::Isel,
11114            p2pfs_ha::Isel,
11115            P2PfsHa_SPEC,
11116            crate::common::RW,
11117        >::from_register(self, 0)
11118    }
11119
11120    #[doc = "Analog Input Enable"]
11121    #[inline(always)]
11122    pub fn asel(
11123        self,
11124    ) -> crate::common::RegisterField<
11125        15,
11126        0x1,
11127        1,
11128        0,
11129        p2pfs_ha::Asel,
11130        p2pfs_ha::Asel,
11131        P2PfsHa_SPEC,
11132        crate::common::RW,
11133    > {
11134        crate::common::RegisterField::<
11135            15,
11136            0x1,
11137            1,
11138            0,
11139            p2pfs_ha::Asel,
11140            p2pfs_ha::Asel,
11141            P2PfsHa_SPEC,
11142            crate::common::RW,
11143        >::from_register(self, 0)
11144    }
11145}
11146impl ::core::default::Default for P2PfsHa {
11147    #[inline(always)]
11148    fn default() -> P2PfsHa {
11149        <crate::RegValueT<P2PfsHa_SPEC> as RegisterValue<_>>::new(0)
11150    }
11151}
11152pub mod p2pfs_ha {
11153
11154    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11155    pub struct Podr_SPEC;
11156    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
11157    impl Podr {
11158        #[doc = "Output low"]
11159        pub const _0: Self = Self::new(0);
11160
11161        #[doc = "Output high"]
11162        pub const _1: Self = Self::new(1);
11163    }
11164    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11165    pub struct Pidr_SPEC;
11166    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
11167    impl Pidr {
11168        #[doc = "Low level"]
11169        pub const _0: Self = Self::new(0);
11170
11171        #[doc = "High level"]
11172        pub const _1: Self = Self::new(1);
11173    }
11174    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11175    pub struct Pdr_SPEC;
11176    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
11177    impl Pdr {
11178        #[doc = "Input (functions as an input pin)"]
11179        pub const _0: Self = Self::new(0);
11180
11181        #[doc = "Output (functions as an output pin)"]
11182        pub const _1: Self = Self::new(1);
11183    }
11184    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11185    pub struct Pcr_SPEC;
11186    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
11187    impl Pcr {
11188        #[doc = "Disable input pull-up"]
11189        pub const _0: Self = Self::new(0);
11190
11191        #[doc = "Enable input pull-up"]
11192        pub const _1: Self = Self::new(1);
11193    }
11194    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11195    pub struct Ncodr_SPEC;
11196    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
11197    impl Ncodr {
11198        #[doc = "Output CMOS"]
11199        pub const _0: Self = Self::new(0);
11200
11201        #[doc = "Output NMOS open-drain"]
11202        pub const _1: Self = Self::new(1);
11203    }
11204    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11205    pub struct Dscr_SPEC;
11206    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
11207    impl Dscr {
11208        #[doc = "Low drive"]
11209        pub const _00: Self = Self::new(0);
11210
11211        #[doc = "Middle drive"]
11212        pub const _01: Self = Self::new(1);
11213
11214        #[doc = "Setting prohibited"]
11215        pub const _10: Self = Self::new(2);
11216
11217        #[doc = "High drive"]
11218        pub const _11: Self = Self::new(3);
11219    }
11220    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11221    pub struct Eofr_SPEC;
11222    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
11223    impl Eofr {
11224        #[doc = "Don\'t care"]
11225        pub const _00: Self = Self::new(0);
11226
11227        #[doc = "Detect rising edge"]
11228        pub const _01: Self = Self::new(1);
11229
11230        #[doc = "Detect falling edge"]
11231        pub const _10: Self = Self::new(2);
11232
11233        #[doc = "Detect both edges"]
11234        pub const _11: Self = Self::new(3);
11235    }
11236    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11237    pub struct Isel_SPEC;
11238    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
11239    impl Isel {
11240        #[doc = "Do not use as IRQn input pin"]
11241        pub const _0: Self = Self::new(0);
11242
11243        #[doc = "Use as IRQn input pin"]
11244        pub const _1: Self = Self::new(1);
11245    }
11246    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11247    pub struct Asel_SPEC;
11248    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
11249    impl Asel {
11250        #[doc = "Do not use as analog pin"]
11251        pub const _0: Self = Self::new(0);
11252
11253        #[doc = "Use as analog pin"]
11254        pub const _1: Self = Self::new(1);
11255    }
11256}
11257#[doc(hidden)]
11258#[derive(Copy, Clone, Eq, PartialEq)]
11259pub struct P2PfsBy_SPEC;
11260impl crate::sealed::RegSpec for P2PfsBy_SPEC {
11261    type DataType = u8;
11262}
11263
11264#[doc = "Port 2%s Pin Function Select Register"]
11265pub type P2PfsBy = crate::RegValueT<P2PfsBy_SPEC>;
11266
11267impl P2PfsBy {
11268    #[doc = "Port Output Data"]
11269    #[inline(always)]
11270    pub fn podr(
11271        self,
11272    ) -> crate::common::RegisterField<
11273        0,
11274        0x1,
11275        1,
11276        0,
11277        p2pfs_by::Podr,
11278        p2pfs_by::Podr,
11279        P2PfsBy_SPEC,
11280        crate::common::RW,
11281    > {
11282        crate::common::RegisterField::<
11283            0,
11284            0x1,
11285            1,
11286            0,
11287            p2pfs_by::Podr,
11288            p2pfs_by::Podr,
11289            P2PfsBy_SPEC,
11290            crate::common::RW,
11291        >::from_register(self, 0)
11292    }
11293
11294    #[doc = "Port State"]
11295    #[inline(always)]
11296    pub fn pidr(
11297        self,
11298    ) -> crate::common::RegisterField<
11299        1,
11300        0x1,
11301        1,
11302        0,
11303        p2pfs_by::Pidr,
11304        p2pfs_by::Pidr,
11305        P2PfsBy_SPEC,
11306        crate::common::R,
11307    > {
11308        crate::common::RegisterField::<
11309            1,
11310            0x1,
11311            1,
11312            0,
11313            p2pfs_by::Pidr,
11314            p2pfs_by::Pidr,
11315            P2PfsBy_SPEC,
11316            crate::common::R,
11317        >::from_register(self, 0)
11318    }
11319
11320    #[doc = "Port Direction"]
11321    #[inline(always)]
11322    pub fn pdr(
11323        self,
11324    ) -> crate::common::RegisterField<
11325        2,
11326        0x1,
11327        1,
11328        0,
11329        p2pfs_by::Pdr,
11330        p2pfs_by::Pdr,
11331        P2PfsBy_SPEC,
11332        crate::common::RW,
11333    > {
11334        crate::common::RegisterField::<
11335            2,
11336            0x1,
11337            1,
11338            0,
11339            p2pfs_by::Pdr,
11340            p2pfs_by::Pdr,
11341            P2PfsBy_SPEC,
11342            crate::common::RW,
11343        >::from_register(self, 0)
11344    }
11345
11346    #[doc = "Pull-up Control"]
11347    #[inline(always)]
11348    pub fn pcr(
11349        self,
11350    ) -> crate::common::RegisterField<
11351        4,
11352        0x1,
11353        1,
11354        0,
11355        p2pfs_by::Pcr,
11356        p2pfs_by::Pcr,
11357        P2PfsBy_SPEC,
11358        crate::common::RW,
11359    > {
11360        crate::common::RegisterField::<
11361            4,
11362            0x1,
11363            1,
11364            0,
11365            p2pfs_by::Pcr,
11366            p2pfs_by::Pcr,
11367            P2PfsBy_SPEC,
11368            crate::common::RW,
11369        >::from_register(self, 0)
11370    }
11371
11372    #[doc = "N-Channel Open-Drain Control"]
11373    #[inline(always)]
11374    pub fn ncodr(
11375        self,
11376    ) -> crate::common::RegisterField<
11377        6,
11378        0x1,
11379        1,
11380        0,
11381        p2pfs_by::Ncodr,
11382        p2pfs_by::Ncodr,
11383        P2PfsBy_SPEC,
11384        crate::common::RW,
11385    > {
11386        crate::common::RegisterField::<
11387            6,
11388            0x1,
11389            1,
11390            0,
11391            p2pfs_by::Ncodr,
11392            p2pfs_by::Ncodr,
11393            P2PfsBy_SPEC,
11394            crate::common::RW,
11395        >::from_register(self, 0)
11396    }
11397}
11398impl ::core::default::Default for P2PfsBy {
11399    #[inline(always)]
11400    fn default() -> P2PfsBy {
11401        <crate::RegValueT<P2PfsBy_SPEC> as RegisterValue<_>>::new(0)
11402    }
11403}
11404pub mod p2pfs_by {
11405
11406    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11407    pub struct Podr_SPEC;
11408    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
11409    impl Podr {
11410        #[doc = "Output low"]
11411        pub const _0: Self = Self::new(0);
11412
11413        #[doc = "Output high"]
11414        pub const _1: Self = Self::new(1);
11415    }
11416    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11417    pub struct Pidr_SPEC;
11418    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
11419    impl Pidr {
11420        #[doc = "Low level"]
11421        pub const _0: Self = Self::new(0);
11422
11423        #[doc = "High level"]
11424        pub const _1: Self = Self::new(1);
11425    }
11426    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11427    pub struct Pdr_SPEC;
11428    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
11429    impl Pdr {
11430        #[doc = "Input (functions as an input pin)"]
11431        pub const _0: Self = Self::new(0);
11432
11433        #[doc = "Output (functions as an output pin)"]
11434        pub const _1: Self = Self::new(1);
11435    }
11436    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11437    pub struct Pcr_SPEC;
11438    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
11439    impl Pcr {
11440        #[doc = "Disable input pull-up"]
11441        pub const _0: Self = Self::new(0);
11442
11443        #[doc = "Enable input pull-up"]
11444        pub const _1: Self = Self::new(1);
11445    }
11446    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11447    pub struct Ncodr_SPEC;
11448    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
11449    impl Ncodr {
11450        #[doc = "Output CMOS"]
11451        pub const _0: Self = Self::new(0);
11452
11453        #[doc = "Output NMOS open-drain"]
11454        pub const _1: Self = Self::new(1);
11455    }
11456}
11457#[doc(hidden)]
11458#[derive(Copy, Clone, Eq, PartialEq)]
11459pub struct P300Pfs_SPEC;
11460impl crate::sealed::RegSpec for P300Pfs_SPEC {
11461    type DataType = u32;
11462}
11463
11464#[doc = "Port 300 Pin Function Select Register"]
11465pub type P300Pfs = crate::RegValueT<P300Pfs_SPEC>;
11466
11467impl P300Pfs {
11468    #[doc = "Port Output Data"]
11469    #[inline(always)]
11470    pub fn podr(
11471        self,
11472    ) -> crate::common::RegisterField<
11473        0,
11474        0x1,
11475        1,
11476        0,
11477        p300pfs::Podr,
11478        p300pfs::Podr,
11479        P300Pfs_SPEC,
11480        crate::common::RW,
11481    > {
11482        crate::common::RegisterField::<
11483            0,
11484            0x1,
11485            1,
11486            0,
11487            p300pfs::Podr,
11488            p300pfs::Podr,
11489            P300Pfs_SPEC,
11490            crate::common::RW,
11491        >::from_register(self, 0)
11492    }
11493
11494    #[doc = "Port State"]
11495    #[inline(always)]
11496    pub fn pidr(
11497        self,
11498    ) -> crate::common::RegisterField<
11499        1,
11500        0x1,
11501        1,
11502        0,
11503        p300pfs::Pidr,
11504        p300pfs::Pidr,
11505        P300Pfs_SPEC,
11506        crate::common::R,
11507    > {
11508        crate::common::RegisterField::<
11509            1,
11510            0x1,
11511            1,
11512            0,
11513            p300pfs::Pidr,
11514            p300pfs::Pidr,
11515            P300Pfs_SPEC,
11516            crate::common::R,
11517        >::from_register(self, 0)
11518    }
11519
11520    #[doc = "Port Direction"]
11521    #[inline(always)]
11522    pub fn pdr(
11523        self,
11524    ) -> crate::common::RegisterField<
11525        2,
11526        0x1,
11527        1,
11528        0,
11529        p300pfs::Pdr,
11530        p300pfs::Pdr,
11531        P300Pfs_SPEC,
11532        crate::common::RW,
11533    > {
11534        crate::common::RegisterField::<
11535            2,
11536            0x1,
11537            1,
11538            0,
11539            p300pfs::Pdr,
11540            p300pfs::Pdr,
11541            P300Pfs_SPEC,
11542            crate::common::RW,
11543        >::from_register(self, 0)
11544    }
11545
11546    #[doc = "Pull-up Control"]
11547    #[inline(always)]
11548    pub fn pcr(
11549        self,
11550    ) -> crate::common::RegisterField<
11551        4,
11552        0x1,
11553        1,
11554        0,
11555        p300pfs::Pcr,
11556        p300pfs::Pcr,
11557        P300Pfs_SPEC,
11558        crate::common::RW,
11559    > {
11560        crate::common::RegisterField::<
11561            4,
11562            0x1,
11563            1,
11564            0,
11565            p300pfs::Pcr,
11566            p300pfs::Pcr,
11567            P300Pfs_SPEC,
11568            crate::common::RW,
11569        >::from_register(self, 0)
11570    }
11571
11572    #[doc = "N-Channel Open-Drain Control"]
11573    #[inline(always)]
11574    pub fn ncodr(
11575        self,
11576    ) -> crate::common::RegisterField<
11577        6,
11578        0x1,
11579        1,
11580        0,
11581        p300pfs::Ncodr,
11582        p300pfs::Ncodr,
11583        P300Pfs_SPEC,
11584        crate::common::RW,
11585    > {
11586        crate::common::RegisterField::<
11587            6,
11588            0x1,
11589            1,
11590            0,
11591            p300pfs::Ncodr,
11592            p300pfs::Ncodr,
11593            P300Pfs_SPEC,
11594            crate::common::RW,
11595        >::from_register(self, 0)
11596    }
11597
11598    #[doc = "Port Drive Capability"]
11599    #[inline(always)]
11600    pub fn dscr(
11601        self,
11602    ) -> crate::common::RegisterField<
11603        10,
11604        0x3,
11605        1,
11606        0,
11607        p300pfs::Dscr,
11608        p300pfs::Dscr,
11609        P300Pfs_SPEC,
11610        crate::common::RW,
11611    > {
11612        crate::common::RegisterField::<
11613            10,
11614            0x3,
11615            1,
11616            0,
11617            p300pfs::Dscr,
11618            p300pfs::Dscr,
11619            P300Pfs_SPEC,
11620            crate::common::RW,
11621        >::from_register(self, 0)
11622    }
11623
11624    #[doc = "Event on Falling/Event on Rising"]
11625    #[inline(always)]
11626    pub fn eofr(
11627        self,
11628    ) -> crate::common::RegisterField<
11629        12,
11630        0x3,
11631        1,
11632        0,
11633        p300pfs::Eofr,
11634        p300pfs::Eofr,
11635        P300Pfs_SPEC,
11636        crate::common::RW,
11637    > {
11638        crate::common::RegisterField::<
11639            12,
11640            0x3,
11641            1,
11642            0,
11643            p300pfs::Eofr,
11644            p300pfs::Eofr,
11645            P300Pfs_SPEC,
11646            crate::common::RW,
11647        >::from_register(self, 0)
11648    }
11649
11650    #[doc = "IRQ Input Enable"]
11651    #[inline(always)]
11652    pub fn isel(
11653        self,
11654    ) -> crate::common::RegisterField<
11655        14,
11656        0x1,
11657        1,
11658        0,
11659        p300pfs::Isel,
11660        p300pfs::Isel,
11661        P300Pfs_SPEC,
11662        crate::common::RW,
11663    > {
11664        crate::common::RegisterField::<
11665            14,
11666            0x1,
11667            1,
11668            0,
11669            p300pfs::Isel,
11670            p300pfs::Isel,
11671            P300Pfs_SPEC,
11672            crate::common::RW,
11673        >::from_register(self, 0)
11674    }
11675
11676    #[doc = "Analog Input Enable"]
11677    #[inline(always)]
11678    pub fn asel(
11679        self,
11680    ) -> crate::common::RegisterField<
11681        15,
11682        0x1,
11683        1,
11684        0,
11685        p300pfs::Asel,
11686        p300pfs::Asel,
11687        P300Pfs_SPEC,
11688        crate::common::RW,
11689    > {
11690        crate::common::RegisterField::<
11691            15,
11692            0x1,
11693            1,
11694            0,
11695            p300pfs::Asel,
11696            p300pfs::Asel,
11697            P300Pfs_SPEC,
11698            crate::common::RW,
11699        >::from_register(self, 0)
11700    }
11701
11702    #[doc = "Port Mode Control"]
11703    #[inline(always)]
11704    pub fn pmr(
11705        self,
11706    ) -> crate::common::RegisterField<
11707        16,
11708        0x1,
11709        1,
11710        0,
11711        p300pfs::Pmr,
11712        p300pfs::Pmr,
11713        P300Pfs_SPEC,
11714        crate::common::RW,
11715    > {
11716        crate::common::RegisterField::<
11717            16,
11718            0x1,
11719            1,
11720            0,
11721            p300pfs::Pmr,
11722            p300pfs::Pmr,
11723            P300Pfs_SPEC,
11724            crate::common::RW,
11725        >::from_register(self, 0)
11726    }
11727
11728    #[doc = "Peripheral Select"]
11729    #[inline(always)]
11730    pub fn psel(
11731        self,
11732    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P300Pfs_SPEC, crate::common::RW> {
11733        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P300Pfs_SPEC,crate::common::RW>::from_register(self,0)
11734    }
11735}
11736impl ::core::default::Default for P300Pfs {
11737    #[inline(always)]
11738    fn default() -> P300Pfs {
11739        <crate::RegValueT<P300Pfs_SPEC> as RegisterValue<_>>::new(65552)
11740    }
11741}
11742pub mod p300pfs {
11743
11744    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11745    pub struct Podr_SPEC;
11746    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
11747    impl Podr {
11748        #[doc = "Output low"]
11749        pub const _0: Self = Self::new(0);
11750
11751        #[doc = "Output high"]
11752        pub const _1: Self = Self::new(1);
11753    }
11754    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11755    pub struct Pidr_SPEC;
11756    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
11757    impl Pidr {
11758        #[doc = "Low level"]
11759        pub const _0: Self = Self::new(0);
11760
11761        #[doc = "High level"]
11762        pub const _1: Self = Self::new(1);
11763    }
11764    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11765    pub struct Pdr_SPEC;
11766    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
11767    impl Pdr {
11768        #[doc = "Input (functions as an input pin)"]
11769        pub const _0: Self = Self::new(0);
11770
11771        #[doc = "Output (functions as an output pin)"]
11772        pub const _1: Self = Self::new(1);
11773    }
11774    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11775    pub struct Pcr_SPEC;
11776    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
11777    impl Pcr {
11778        #[doc = "Disable input pull-up"]
11779        pub const _0: Self = Self::new(0);
11780
11781        #[doc = "Enable input pull-up"]
11782        pub const _1: Self = Self::new(1);
11783    }
11784    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11785    pub struct Ncodr_SPEC;
11786    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
11787    impl Ncodr {
11788        #[doc = "Output CMOS"]
11789        pub const _0: Self = Self::new(0);
11790
11791        #[doc = "Output NMOS open-drain"]
11792        pub const _1: Self = Self::new(1);
11793    }
11794    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11795    pub struct Dscr_SPEC;
11796    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
11797    impl Dscr {
11798        #[doc = "Low drive"]
11799        pub const _00: Self = Self::new(0);
11800
11801        #[doc = "Middle drive"]
11802        pub const _01: Self = Self::new(1);
11803
11804        #[doc = "Setting prohibited"]
11805        pub const _10: Self = Self::new(2);
11806
11807        #[doc = "High drive"]
11808        pub const _11: Self = Self::new(3);
11809    }
11810    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11811    pub struct Eofr_SPEC;
11812    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
11813    impl Eofr {
11814        #[doc = "Don\'t care"]
11815        pub const _00: Self = Self::new(0);
11816
11817        #[doc = "Detect rising edge"]
11818        pub const _01: Self = Self::new(1);
11819
11820        #[doc = "Detect falling edge"]
11821        pub const _10: Self = Self::new(2);
11822
11823        #[doc = "Detect both edges"]
11824        pub const _11: Self = Self::new(3);
11825    }
11826    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11827    pub struct Isel_SPEC;
11828    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
11829    impl Isel {
11830        #[doc = "Do not use as IRQn input pin"]
11831        pub const _0: Self = Self::new(0);
11832
11833        #[doc = "Use as IRQn input pin"]
11834        pub const _1: Self = Self::new(1);
11835    }
11836    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11837    pub struct Asel_SPEC;
11838    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
11839    impl Asel {
11840        #[doc = "Do not use as analog pin"]
11841        pub const _0: Self = Self::new(0);
11842
11843        #[doc = "Use as analog pin"]
11844        pub const _1: Self = Self::new(1);
11845    }
11846    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
11847    pub struct Pmr_SPEC;
11848    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
11849    impl Pmr {
11850        #[doc = "Use as general I/O pin"]
11851        pub const _0: Self = Self::new(0);
11852
11853        #[doc = "Use as I/O port for peripheral functions"]
11854        pub const _1: Self = Self::new(1);
11855    }
11856}
11857#[doc(hidden)]
11858#[derive(Copy, Clone, Eq, PartialEq)]
11859pub struct P300PfsHa_SPEC;
11860impl crate::sealed::RegSpec for P300PfsHa_SPEC {
11861    type DataType = u16;
11862}
11863
11864#[doc = "Port 300 Pin Function Select Register"]
11865pub type P300PfsHa = crate::RegValueT<P300PfsHa_SPEC>;
11866
11867impl P300PfsHa {
11868    #[doc = "Port Output Data"]
11869    #[inline(always)]
11870    pub fn podr(
11871        self,
11872    ) -> crate::common::RegisterField<
11873        0,
11874        0x1,
11875        1,
11876        0,
11877        p300pfs_ha::Podr,
11878        p300pfs_ha::Podr,
11879        P300PfsHa_SPEC,
11880        crate::common::RW,
11881    > {
11882        crate::common::RegisterField::<
11883            0,
11884            0x1,
11885            1,
11886            0,
11887            p300pfs_ha::Podr,
11888            p300pfs_ha::Podr,
11889            P300PfsHa_SPEC,
11890            crate::common::RW,
11891        >::from_register(self, 0)
11892    }
11893
11894    #[doc = "Port State"]
11895    #[inline(always)]
11896    pub fn pidr(
11897        self,
11898    ) -> crate::common::RegisterField<
11899        1,
11900        0x1,
11901        1,
11902        0,
11903        p300pfs_ha::Pidr,
11904        p300pfs_ha::Pidr,
11905        P300PfsHa_SPEC,
11906        crate::common::R,
11907    > {
11908        crate::common::RegisterField::<
11909            1,
11910            0x1,
11911            1,
11912            0,
11913            p300pfs_ha::Pidr,
11914            p300pfs_ha::Pidr,
11915            P300PfsHa_SPEC,
11916            crate::common::R,
11917        >::from_register(self, 0)
11918    }
11919
11920    #[doc = "Port Direction"]
11921    #[inline(always)]
11922    pub fn pdr(
11923        self,
11924    ) -> crate::common::RegisterField<
11925        2,
11926        0x1,
11927        1,
11928        0,
11929        p300pfs_ha::Pdr,
11930        p300pfs_ha::Pdr,
11931        P300PfsHa_SPEC,
11932        crate::common::RW,
11933    > {
11934        crate::common::RegisterField::<
11935            2,
11936            0x1,
11937            1,
11938            0,
11939            p300pfs_ha::Pdr,
11940            p300pfs_ha::Pdr,
11941            P300PfsHa_SPEC,
11942            crate::common::RW,
11943        >::from_register(self, 0)
11944    }
11945
11946    #[doc = "Pull-up Control"]
11947    #[inline(always)]
11948    pub fn pcr(
11949        self,
11950    ) -> crate::common::RegisterField<
11951        4,
11952        0x1,
11953        1,
11954        0,
11955        p300pfs_ha::Pcr,
11956        p300pfs_ha::Pcr,
11957        P300PfsHa_SPEC,
11958        crate::common::RW,
11959    > {
11960        crate::common::RegisterField::<
11961            4,
11962            0x1,
11963            1,
11964            0,
11965            p300pfs_ha::Pcr,
11966            p300pfs_ha::Pcr,
11967            P300PfsHa_SPEC,
11968            crate::common::RW,
11969        >::from_register(self, 0)
11970    }
11971
11972    #[doc = "N-Channel Open-Drain Control"]
11973    #[inline(always)]
11974    pub fn ncodr(
11975        self,
11976    ) -> crate::common::RegisterField<
11977        6,
11978        0x1,
11979        1,
11980        0,
11981        p300pfs_ha::Ncodr,
11982        p300pfs_ha::Ncodr,
11983        P300PfsHa_SPEC,
11984        crate::common::RW,
11985    > {
11986        crate::common::RegisterField::<
11987            6,
11988            0x1,
11989            1,
11990            0,
11991            p300pfs_ha::Ncodr,
11992            p300pfs_ha::Ncodr,
11993            P300PfsHa_SPEC,
11994            crate::common::RW,
11995        >::from_register(self, 0)
11996    }
11997
11998    #[doc = "Port Drive Capability"]
11999    #[inline(always)]
12000    pub fn dscr(
12001        self,
12002    ) -> crate::common::RegisterField<
12003        10,
12004        0x3,
12005        1,
12006        0,
12007        p300pfs_ha::Dscr,
12008        p300pfs_ha::Dscr,
12009        P300PfsHa_SPEC,
12010        crate::common::RW,
12011    > {
12012        crate::common::RegisterField::<
12013            10,
12014            0x3,
12015            1,
12016            0,
12017            p300pfs_ha::Dscr,
12018            p300pfs_ha::Dscr,
12019            P300PfsHa_SPEC,
12020            crate::common::RW,
12021        >::from_register(self, 0)
12022    }
12023
12024    #[doc = "Event on Falling/Event on Rising"]
12025    #[inline(always)]
12026    pub fn eofr(
12027        self,
12028    ) -> crate::common::RegisterField<
12029        12,
12030        0x3,
12031        1,
12032        0,
12033        p300pfs_ha::Eofr,
12034        p300pfs_ha::Eofr,
12035        P300PfsHa_SPEC,
12036        crate::common::RW,
12037    > {
12038        crate::common::RegisterField::<
12039            12,
12040            0x3,
12041            1,
12042            0,
12043            p300pfs_ha::Eofr,
12044            p300pfs_ha::Eofr,
12045            P300PfsHa_SPEC,
12046            crate::common::RW,
12047        >::from_register(self, 0)
12048    }
12049
12050    #[doc = "IRQ Input Enable"]
12051    #[inline(always)]
12052    pub fn isel(
12053        self,
12054    ) -> crate::common::RegisterField<
12055        14,
12056        0x1,
12057        1,
12058        0,
12059        p300pfs_ha::Isel,
12060        p300pfs_ha::Isel,
12061        P300PfsHa_SPEC,
12062        crate::common::RW,
12063    > {
12064        crate::common::RegisterField::<
12065            14,
12066            0x1,
12067            1,
12068            0,
12069            p300pfs_ha::Isel,
12070            p300pfs_ha::Isel,
12071            P300PfsHa_SPEC,
12072            crate::common::RW,
12073        >::from_register(self, 0)
12074    }
12075
12076    #[doc = "Analog Input Enable"]
12077    #[inline(always)]
12078    pub fn asel(
12079        self,
12080    ) -> crate::common::RegisterField<
12081        15,
12082        0x1,
12083        1,
12084        0,
12085        p300pfs_ha::Asel,
12086        p300pfs_ha::Asel,
12087        P300PfsHa_SPEC,
12088        crate::common::RW,
12089    > {
12090        crate::common::RegisterField::<
12091            15,
12092            0x1,
12093            1,
12094            0,
12095            p300pfs_ha::Asel,
12096            p300pfs_ha::Asel,
12097            P300PfsHa_SPEC,
12098            crate::common::RW,
12099        >::from_register(self, 0)
12100    }
12101}
12102impl ::core::default::Default for P300PfsHa {
12103    #[inline(always)]
12104    fn default() -> P300PfsHa {
12105        <crate::RegValueT<P300PfsHa_SPEC> as RegisterValue<_>>::new(16)
12106    }
12107}
12108pub mod p300pfs_ha {
12109
12110    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12111    pub struct Podr_SPEC;
12112    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
12113    impl Podr {
12114        #[doc = "Output low"]
12115        pub const _0: Self = Self::new(0);
12116
12117        #[doc = "Output high"]
12118        pub const _1: Self = Self::new(1);
12119    }
12120    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12121    pub struct Pidr_SPEC;
12122    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
12123    impl Pidr {
12124        #[doc = "Low level"]
12125        pub const _0: Self = Self::new(0);
12126
12127        #[doc = "High level"]
12128        pub const _1: Self = Self::new(1);
12129    }
12130    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12131    pub struct Pdr_SPEC;
12132    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
12133    impl Pdr {
12134        #[doc = "Input (functions as an input pin)"]
12135        pub const _0: Self = Self::new(0);
12136
12137        #[doc = "Output (functions as an output pin)"]
12138        pub const _1: Self = Self::new(1);
12139    }
12140    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12141    pub struct Pcr_SPEC;
12142    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
12143    impl Pcr {
12144        #[doc = "Disable input pull-up"]
12145        pub const _0: Self = Self::new(0);
12146
12147        #[doc = "Enable input pull-up"]
12148        pub const _1: Self = Self::new(1);
12149    }
12150    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12151    pub struct Ncodr_SPEC;
12152    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
12153    impl Ncodr {
12154        #[doc = "Output CMOS"]
12155        pub const _0: Self = Self::new(0);
12156
12157        #[doc = "Output NMOS open-drain"]
12158        pub const _1: Self = Self::new(1);
12159    }
12160    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12161    pub struct Dscr_SPEC;
12162    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
12163    impl Dscr {
12164        #[doc = "Low drive"]
12165        pub const _00: Self = Self::new(0);
12166
12167        #[doc = "Middle drive"]
12168        pub const _01: Self = Self::new(1);
12169
12170        #[doc = "Setting prohibited"]
12171        pub const _10: Self = Self::new(2);
12172
12173        #[doc = "High drive"]
12174        pub const _11: Self = Self::new(3);
12175    }
12176    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12177    pub struct Eofr_SPEC;
12178    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
12179    impl Eofr {
12180        #[doc = "Don\'t care"]
12181        pub const _00: Self = Self::new(0);
12182
12183        #[doc = "Detect rising edge"]
12184        pub const _01: Self = Self::new(1);
12185
12186        #[doc = "Detect falling edge"]
12187        pub const _10: Self = Self::new(2);
12188
12189        #[doc = "Detect both edges"]
12190        pub const _11: Self = Self::new(3);
12191    }
12192    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12193    pub struct Isel_SPEC;
12194    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
12195    impl Isel {
12196        #[doc = "Do not use as IRQn input pin"]
12197        pub const _0: Self = Self::new(0);
12198
12199        #[doc = "Use as IRQn input pin"]
12200        pub const _1: Self = Self::new(1);
12201    }
12202    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12203    pub struct Asel_SPEC;
12204    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
12205    impl Asel {
12206        #[doc = "Do not use as analog pin"]
12207        pub const _0: Self = Self::new(0);
12208
12209        #[doc = "Use as analog pin"]
12210        pub const _1: Self = Self::new(1);
12211    }
12212}
12213#[doc(hidden)]
12214#[derive(Copy, Clone, Eq, PartialEq)]
12215pub struct P300PfsBy_SPEC;
12216impl crate::sealed::RegSpec for P300PfsBy_SPEC {
12217    type DataType = u8;
12218}
12219
12220#[doc = "Port 300 Pin Function Select Register"]
12221pub type P300PfsBy = crate::RegValueT<P300PfsBy_SPEC>;
12222
12223impl P300PfsBy {
12224    #[doc = "Port Output Data"]
12225    #[inline(always)]
12226    pub fn podr(
12227        self,
12228    ) -> crate::common::RegisterField<
12229        0,
12230        0x1,
12231        1,
12232        0,
12233        p300pfs_by::Podr,
12234        p300pfs_by::Podr,
12235        P300PfsBy_SPEC,
12236        crate::common::RW,
12237    > {
12238        crate::common::RegisterField::<
12239            0,
12240            0x1,
12241            1,
12242            0,
12243            p300pfs_by::Podr,
12244            p300pfs_by::Podr,
12245            P300PfsBy_SPEC,
12246            crate::common::RW,
12247        >::from_register(self, 0)
12248    }
12249
12250    #[doc = "Port State"]
12251    #[inline(always)]
12252    pub fn pidr(
12253        self,
12254    ) -> crate::common::RegisterField<
12255        1,
12256        0x1,
12257        1,
12258        0,
12259        p300pfs_by::Pidr,
12260        p300pfs_by::Pidr,
12261        P300PfsBy_SPEC,
12262        crate::common::R,
12263    > {
12264        crate::common::RegisterField::<
12265            1,
12266            0x1,
12267            1,
12268            0,
12269            p300pfs_by::Pidr,
12270            p300pfs_by::Pidr,
12271            P300PfsBy_SPEC,
12272            crate::common::R,
12273        >::from_register(self, 0)
12274    }
12275
12276    #[doc = "Port Direction"]
12277    #[inline(always)]
12278    pub fn pdr(
12279        self,
12280    ) -> crate::common::RegisterField<
12281        2,
12282        0x1,
12283        1,
12284        0,
12285        p300pfs_by::Pdr,
12286        p300pfs_by::Pdr,
12287        P300PfsBy_SPEC,
12288        crate::common::RW,
12289    > {
12290        crate::common::RegisterField::<
12291            2,
12292            0x1,
12293            1,
12294            0,
12295            p300pfs_by::Pdr,
12296            p300pfs_by::Pdr,
12297            P300PfsBy_SPEC,
12298            crate::common::RW,
12299        >::from_register(self, 0)
12300    }
12301
12302    #[doc = "Pull-up Control"]
12303    #[inline(always)]
12304    pub fn pcr(
12305        self,
12306    ) -> crate::common::RegisterField<
12307        4,
12308        0x1,
12309        1,
12310        0,
12311        p300pfs_by::Pcr,
12312        p300pfs_by::Pcr,
12313        P300PfsBy_SPEC,
12314        crate::common::RW,
12315    > {
12316        crate::common::RegisterField::<
12317            4,
12318            0x1,
12319            1,
12320            0,
12321            p300pfs_by::Pcr,
12322            p300pfs_by::Pcr,
12323            P300PfsBy_SPEC,
12324            crate::common::RW,
12325        >::from_register(self, 0)
12326    }
12327
12328    #[doc = "N-Channel Open-Drain Control"]
12329    #[inline(always)]
12330    pub fn ncodr(
12331        self,
12332    ) -> crate::common::RegisterField<
12333        6,
12334        0x1,
12335        1,
12336        0,
12337        p300pfs_by::Ncodr,
12338        p300pfs_by::Ncodr,
12339        P300PfsBy_SPEC,
12340        crate::common::RW,
12341    > {
12342        crate::common::RegisterField::<
12343            6,
12344            0x1,
12345            1,
12346            0,
12347            p300pfs_by::Ncodr,
12348            p300pfs_by::Ncodr,
12349            P300PfsBy_SPEC,
12350            crate::common::RW,
12351        >::from_register(self, 0)
12352    }
12353}
12354impl ::core::default::Default for P300PfsBy {
12355    #[inline(always)]
12356    fn default() -> P300PfsBy {
12357        <crate::RegValueT<P300PfsBy_SPEC> as RegisterValue<_>>::new(16)
12358    }
12359}
12360pub mod p300pfs_by {
12361
12362    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12363    pub struct Podr_SPEC;
12364    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
12365    impl Podr {
12366        #[doc = "Output low"]
12367        pub const _0: Self = Self::new(0);
12368
12369        #[doc = "Output high"]
12370        pub const _1: Self = Self::new(1);
12371    }
12372    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12373    pub struct Pidr_SPEC;
12374    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
12375    impl Pidr {
12376        #[doc = "Low level"]
12377        pub const _0: Self = Self::new(0);
12378
12379        #[doc = "High level"]
12380        pub const _1: Self = Self::new(1);
12381    }
12382    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12383    pub struct Pdr_SPEC;
12384    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
12385    impl Pdr {
12386        #[doc = "Input (functions as an input pin)"]
12387        pub const _0: Self = Self::new(0);
12388
12389        #[doc = "Output (functions as an output pin)"]
12390        pub const _1: Self = Self::new(1);
12391    }
12392    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12393    pub struct Pcr_SPEC;
12394    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
12395    impl Pcr {
12396        #[doc = "Disable input pull-up"]
12397        pub const _0: Self = Self::new(0);
12398
12399        #[doc = "Enable input pull-up"]
12400        pub const _1: Self = Self::new(1);
12401    }
12402    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12403    pub struct Ncodr_SPEC;
12404    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
12405    impl Ncodr {
12406        #[doc = "Output CMOS"]
12407        pub const _0: Self = Self::new(0);
12408
12409        #[doc = "Output NMOS open-drain"]
12410        pub const _1: Self = Self::new(1);
12411    }
12412}
12413#[doc(hidden)]
12414#[derive(Copy, Clone, Eq, PartialEq)]
12415pub struct P30Pfs_SPEC;
12416impl crate::sealed::RegSpec for P30Pfs_SPEC {
12417    type DataType = u32;
12418}
12419
12420#[doc = "Port 30%s Pin Function Select Register"]
12421pub type P30Pfs = crate::RegValueT<P30Pfs_SPEC>;
12422
12423impl P30Pfs {
12424    #[doc = "Port Output Data"]
12425    #[inline(always)]
12426    pub fn podr(
12427        self,
12428    ) -> crate::common::RegisterField<
12429        0,
12430        0x1,
12431        1,
12432        0,
12433        p30pfs::Podr,
12434        p30pfs::Podr,
12435        P30Pfs_SPEC,
12436        crate::common::RW,
12437    > {
12438        crate::common::RegisterField::<
12439            0,
12440            0x1,
12441            1,
12442            0,
12443            p30pfs::Podr,
12444            p30pfs::Podr,
12445            P30Pfs_SPEC,
12446            crate::common::RW,
12447        >::from_register(self, 0)
12448    }
12449
12450    #[doc = "Port State"]
12451    #[inline(always)]
12452    pub fn pidr(
12453        self,
12454    ) -> crate::common::RegisterField<
12455        1,
12456        0x1,
12457        1,
12458        0,
12459        p30pfs::Pidr,
12460        p30pfs::Pidr,
12461        P30Pfs_SPEC,
12462        crate::common::R,
12463    > {
12464        crate::common::RegisterField::<
12465            1,
12466            0x1,
12467            1,
12468            0,
12469            p30pfs::Pidr,
12470            p30pfs::Pidr,
12471            P30Pfs_SPEC,
12472            crate::common::R,
12473        >::from_register(self, 0)
12474    }
12475
12476    #[doc = "Port Direction"]
12477    #[inline(always)]
12478    pub fn pdr(
12479        self,
12480    ) -> crate::common::RegisterField<
12481        2,
12482        0x1,
12483        1,
12484        0,
12485        p30pfs::Pdr,
12486        p30pfs::Pdr,
12487        P30Pfs_SPEC,
12488        crate::common::RW,
12489    > {
12490        crate::common::RegisterField::<
12491            2,
12492            0x1,
12493            1,
12494            0,
12495            p30pfs::Pdr,
12496            p30pfs::Pdr,
12497            P30Pfs_SPEC,
12498            crate::common::RW,
12499        >::from_register(self, 0)
12500    }
12501
12502    #[doc = "Pull-up Control"]
12503    #[inline(always)]
12504    pub fn pcr(
12505        self,
12506    ) -> crate::common::RegisterField<
12507        4,
12508        0x1,
12509        1,
12510        0,
12511        p30pfs::Pcr,
12512        p30pfs::Pcr,
12513        P30Pfs_SPEC,
12514        crate::common::RW,
12515    > {
12516        crate::common::RegisterField::<
12517            4,
12518            0x1,
12519            1,
12520            0,
12521            p30pfs::Pcr,
12522            p30pfs::Pcr,
12523            P30Pfs_SPEC,
12524            crate::common::RW,
12525        >::from_register(self, 0)
12526    }
12527
12528    #[doc = "N-Channel Open-Drain Control"]
12529    #[inline(always)]
12530    pub fn ncodr(
12531        self,
12532    ) -> crate::common::RegisterField<
12533        6,
12534        0x1,
12535        1,
12536        0,
12537        p30pfs::Ncodr,
12538        p30pfs::Ncodr,
12539        P30Pfs_SPEC,
12540        crate::common::RW,
12541    > {
12542        crate::common::RegisterField::<
12543            6,
12544            0x1,
12545            1,
12546            0,
12547            p30pfs::Ncodr,
12548            p30pfs::Ncodr,
12549            P30Pfs_SPEC,
12550            crate::common::RW,
12551        >::from_register(self, 0)
12552    }
12553
12554    #[doc = "Port Drive Capability"]
12555    #[inline(always)]
12556    pub fn dscr(
12557        self,
12558    ) -> crate::common::RegisterField<
12559        10,
12560        0x3,
12561        1,
12562        0,
12563        p30pfs::Dscr,
12564        p30pfs::Dscr,
12565        P30Pfs_SPEC,
12566        crate::common::RW,
12567    > {
12568        crate::common::RegisterField::<
12569            10,
12570            0x3,
12571            1,
12572            0,
12573            p30pfs::Dscr,
12574            p30pfs::Dscr,
12575            P30Pfs_SPEC,
12576            crate::common::RW,
12577        >::from_register(self, 0)
12578    }
12579
12580    #[doc = "Event on Falling/Event on Rising"]
12581    #[inline(always)]
12582    pub fn eofr(
12583        self,
12584    ) -> crate::common::RegisterField<
12585        12,
12586        0x3,
12587        1,
12588        0,
12589        p30pfs::Eofr,
12590        p30pfs::Eofr,
12591        P30Pfs_SPEC,
12592        crate::common::RW,
12593    > {
12594        crate::common::RegisterField::<
12595            12,
12596            0x3,
12597            1,
12598            0,
12599            p30pfs::Eofr,
12600            p30pfs::Eofr,
12601            P30Pfs_SPEC,
12602            crate::common::RW,
12603        >::from_register(self, 0)
12604    }
12605
12606    #[doc = "IRQ Input Enable"]
12607    #[inline(always)]
12608    pub fn isel(
12609        self,
12610    ) -> crate::common::RegisterField<
12611        14,
12612        0x1,
12613        1,
12614        0,
12615        p30pfs::Isel,
12616        p30pfs::Isel,
12617        P30Pfs_SPEC,
12618        crate::common::RW,
12619    > {
12620        crate::common::RegisterField::<
12621            14,
12622            0x1,
12623            1,
12624            0,
12625            p30pfs::Isel,
12626            p30pfs::Isel,
12627            P30Pfs_SPEC,
12628            crate::common::RW,
12629        >::from_register(self, 0)
12630    }
12631
12632    #[doc = "Analog Input Enable"]
12633    #[inline(always)]
12634    pub fn asel(
12635        self,
12636    ) -> crate::common::RegisterField<
12637        15,
12638        0x1,
12639        1,
12640        0,
12641        p30pfs::Asel,
12642        p30pfs::Asel,
12643        P30Pfs_SPEC,
12644        crate::common::RW,
12645    > {
12646        crate::common::RegisterField::<
12647            15,
12648            0x1,
12649            1,
12650            0,
12651            p30pfs::Asel,
12652            p30pfs::Asel,
12653            P30Pfs_SPEC,
12654            crate::common::RW,
12655        >::from_register(self, 0)
12656    }
12657
12658    #[doc = "Port Mode Control"]
12659    #[inline(always)]
12660    pub fn pmr(
12661        self,
12662    ) -> crate::common::RegisterField<
12663        16,
12664        0x1,
12665        1,
12666        0,
12667        p30pfs::Pmr,
12668        p30pfs::Pmr,
12669        P30Pfs_SPEC,
12670        crate::common::RW,
12671    > {
12672        crate::common::RegisterField::<
12673            16,
12674            0x1,
12675            1,
12676            0,
12677            p30pfs::Pmr,
12678            p30pfs::Pmr,
12679            P30Pfs_SPEC,
12680            crate::common::RW,
12681        >::from_register(self, 0)
12682    }
12683
12684    #[doc = "Peripheral Select"]
12685    #[inline(always)]
12686    pub fn psel(
12687        self,
12688    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P30Pfs_SPEC, crate::common::RW> {
12689        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P30Pfs_SPEC,crate::common::RW>::from_register(self,0)
12690    }
12691}
12692impl ::core::default::Default for P30Pfs {
12693    #[inline(always)]
12694    fn default() -> P30Pfs {
12695        <crate::RegValueT<P30Pfs_SPEC> as RegisterValue<_>>::new(0)
12696    }
12697}
12698pub mod p30pfs {
12699
12700    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12701    pub struct Podr_SPEC;
12702    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
12703    impl Podr {
12704        #[doc = "Output low"]
12705        pub const _0: Self = Self::new(0);
12706
12707        #[doc = "Output high"]
12708        pub const _1: Self = Self::new(1);
12709    }
12710    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12711    pub struct Pidr_SPEC;
12712    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
12713    impl Pidr {
12714        #[doc = "Low level"]
12715        pub const _0: Self = Self::new(0);
12716
12717        #[doc = "High level"]
12718        pub const _1: Self = Self::new(1);
12719    }
12720    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12721    pub struct Pdr_SPEC;
12722    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
12723    impl Pdr {
12724        #[doc = "Input (functions as an input pin)"]
12725        pub const _0: Self = Self::new(0);
12726
12727        #[doc = "Output (functions as an output pin)"]
12728        pub const _1: Self = Self::new(1);
12729    }
12730    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12731    pub struct Pcr_SPEC;
12732    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
12733    impl Pcr {
12734        #[doc = "Disable input pull-up"]
12735        pub const _0: Self = Self::new(0);
12736
12737        #[doc = "Enable input pull-up"]
12738        pub const _1: Self = Self::new(1);
12739    }
12740    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12741    pub struct Ncodr_SPEC;
12742    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
12743    impl Ncodr {
12744        #[doc = "Output CMOS"]
12745        pub const _0: Self = Self::new(0);
12746
12747        #[doc = "Output NMOS open-drain"]
12748        pub const _1: Self = Self::new(1);
12749    }
12750    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12751    pub struct Dscr_SPEC;
12752    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
12753    impl Dscr {
12754        #[doc = "Low drive"]
12755        pub const _00: Self = Self::new(0);
12756
12757        #[doc = "Middle drive"]
12758        pub const _01: Self = Self::new(1);
12759
12760        #[doc = "Setting prohibited"]
12761        pub const _10: Self = Self::new(2);
12762
12763        #[doc = "High drive"]
12764        pub const _11: Self = Self::new(3);
12765    }
12766    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12767    pub struct Eofr_SPEC;
12768    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
12769    impl Eofr {
12770        #[doc = "Don\'t care"]
12771        pub const _00: Self = Self::new(0);
12772
12773        #[doc = "Detect rising edge"]
12774        pub const _01: Self = Self::new(1);
12775
12776        #[doc = "Detect falling edge"]
12777        pub const _10: Self = Self::new(2);
12778
12779        #[doc = "Detect both edges"]
12780        pub const _11: Self = Self::new(3);
12781    }
12782    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12783    pub struct Isel_SPEC;
12784    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
12785    impl Isel {
12786        #[doc = "Do not use as IRQn input pin"]
12787        pub const _0: Self = Self::new(0);
12788
12789        #[doc = "Use as IRQn input pin"]
12790        pub const _1: Self = Self::new(1);
12791    }
12792    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12793    pub struct Asel_SPEC;
12794    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
12795    impl Asel {
12796        #[doc = "Do not use as analog pin"]
12797        pub const _0: Self = Self::new(0);
12798
12799        #[doc = "Use as analog pin"]
12800        pub const _1: Self = Self::new(1);
12801    }
12802    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
12803    pub struct Pmr_SPEC;
12804    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
12805    impl Pmr {
12806        #[doc = "Use as general I/O pin"]
12807        pub const _0: Self = Self::new(0);
12808
12809        #[doc = "Use as I/O port for peripheral functions"]
12810        pub const _1: Self = Self::new(1);
12811    }
12812}
12813#[doc(hidden)]
12814#[derive(Copy, Clone, Eq, PartialEq)]
12815pub struct P30PfsHa_SPEC;
12816impl crate::sealed::RegSpec for P30PfsHa_SPEC {
12817    type DataType = u16;
12818}
12819
12820#[doc = "Port 30%s Pin Function Select Register"]
12821pub type P30PfsHa = crate::RegValueT<P30PfsHa_SPEC>;
12822
12823impl P30PfsHa {
12824    #[doc = "Port Output Data"]
12825    #[inline(always)]
12826    pub fn podr(
12827        self,
12828    ) -> crate::common::RegisterField<
12829        0,
12830        0x1,
12831        1,
12832        0,
12833        p30pfs_ha::Podr,
12834        p30pfs_ha::Podr,
12835        P30PfsHa_SPEC,
12836        crate::common::RW,
12837    > {
12838        crate::common::RegisterField::<
12839            0,
12840            0x1,
12841            1,
12842            0,
12843            p30pfs_ha::Podr,
12844            p30pfs_ha::Podr,
12845            P30PfsHa_SPEC,
12846            crate::common::RW,
12847        >::from_register(self, 0)
12848    }
12849
12850    #[doc = "Port State"]
12851    #[inline(always)]
12852    pub fn pidr(
12853        self,
12854    ) -> crate::common::RegisterField<
12855        1,
12856        0x1,
12857        1,
12858        0,
12859        p30pfs_ha::Pidr,
12860        p30pfs_ha::Pidr,
12861        P30PfsHa_SPEC,
12862        crate::common::R,
12863    > {
12864        crate::common::RegisterField::<
12865            1,
12866            0x1,
12867            1,
12868            0,
12869            p30pfs_ha::Pidr,
12870            p30pfs_ha::Pidr,
12871            P30PfsHa_SPEC,
12872            crate::common::R,
12873        >::from_register(self, 0)
12874    }
12875
12876    #[doc = "Port Direction"]
12877    #[inline(always)]
12878    pub fn pdr(
12879        self,
12880    ) -> crate::common::RegisterField<
12881        2,
12882        0x1,
12883        1,
12884        0,
12885        p30pfs_ha::Pdr,
12886        p30pfs_ha::Pdr,
12887        P30PfsHa_SPEC,
12888        crate::common::RW,
12889    > {
12890        crate::common::RegisterField::<
12891            2,
12892            0x1,
12893            1,
12894            0,
12895            p30pfs_ha::Pdr,
12896            p30pfs_ha::Pdr,
12897            P30PfsHa_SPEC,
12898            crate::common::RW,
12899        >::from_register(self, 0)
12900    }
12901
12902    #[doc = "Pull-up Control"]
12903    #[inline(always)]
12904    pub fn pcr(
12905        self,
12906    ) -> crate::common::RegisterField<
12907        4,
12908        0x1,
12909        1,
12910        0,
12911        p30pfs_ha::Pcr,
12912        p30pfs_ha::Pcr,
12913        P30PfsHa_SPEC,
12914        crate::common::RW,
12915    > {
12916        crate::common::RegisterField::<
12917            4,
12918            0x1,
12919            1,
12920            0,
12921            p30pfs_ha::Pcr,
12922            p30pfs_ha::Pcr,
12923            P30PfsHa_SPEC,
12924            crate::common::RW,
12925        >::from_register(self, 0)
12926    }
12927
12928    #[doc = "N-Channel Open-Drain Control"]
12929    #[inline(always)]
12930    pub fn ncodr(
12931        self,
12932    ) -> crate::common::RegisterField<
12933        6,
12934        0x1,
12935        1,
12936        0,
12937        p30pfs_ha::Ncodr,
12938        p30pfs_ha::Ncodr,
12939        P30PfsHa_SPEC,
12940        crate::common::RW,
12941    > {
12942        crate::common::RegisterField::<
12943            6,
12944            0x1,
12945            1,
12946            0,
12947            p30pfs_ha::Ncodr,
12948            p30pfs_ha::Ncodr,
12949            P30PfsHa_SPEC,
12950            crate::common::RW,
12951        >::from_register(self, 0)
12952    }
12953
12954    #[doc = "Port Drive Capability"]
12955    #[inline(always)]
12956    pub fn dscr(
12957        self,
12958    ) -> crate::common::RegisterField<
12959        10,
12960        0x3,
12961        1,
12962        0,
12963        p30pfs_ha::Dscr,
12964        p30pfs_ha::Dscr,
12965        P30PfsHa_SPEC,
12966        crate::common::RW,
12967    > {
12968        crate::common::RegisterField::<
12969            10,
12970            0x3,
12971            1,
12972            0,
12973            p30pfs_ha::Dscr,
12974            p30pfs_ha::Dscr,
12975            P30PfsHa_SPEC,
12976            crate::common::RW,
12977        >::from_register(self, 0)
12978    }
12979
12980    #[doc = "Event on Falling/Event on Rising"]
12981    #[inline(always)]
12982    pub fn eofr(
12983        self,
12984    ) -> crate::common::RegisterField<
12985        12,
12986        0x3,
12987        1,
12988        0,
12989        p30pfs_ha::Eofr,
12990        p30pfs_ha::Eofr,
12991        P30PfsHa_SPEC,
12992        crate::common::RW,
12993    > {
12994        crate::common::RegisterField::<
12995            12,
12996            0x3,
12997            1,
12998            0,
12999            p30pfs_ha::Eofr,
13000            p30pfs_ha::Eofr,
13001            P30PfsHa_SPEC,
13002            crate::common::RW,
13003        >::from_register(self, 0)
13004    }
13005
13006    #[doc = "IRQ Input Enable"]
13007    #[inline(always)]
13008    pub fn isel(
13009        self,
13010    ) -> crate::common::RegisterField<
13011        14,
13012        0x1,
13013        1,
13014        0,
13015        p30pfs_ha::Isel,
13016        p30pfs_ha::Isel,
13017        P30PfsHa_SPEC,
13018        crate::common::RW,
13019    > {
13020        crate::common::RegisterField::<
13021            14,
13022            0x1,
13023            1,
13024            0,
13025            p30pfs_ha::Isel,
13026            p30pfs_ha::Isel,
13027            P30PfsHa_SPEC,
13028            crate::common::RW,
13029        >::from_register(self, 0)
13030    }
13031
13032    #[doc = "Analog Input Enable"]
13033    #[inline(always)]
13034    pub fn asel(
13035        self,
13036    ) -> crate::common::RegisterField<
13037        15,
13038        0x1,
13039        1,
13040        0,
13041        p30pfs_ha::Asel,
13042        p30pfs_ha::Asel,
13043        P30PfsHa_SPEC,
13044        crate::common::RW,
13045    > {
13046        crate::common::RegisterField::<
13047            15,
13048            0x1,
13049            1,
13050            0,
13051            p30pfs_ha::Asel,
13052            p30pfs_ha::Asel,
13053            P30PfsHa_SPEC,
13054            crate::common::RW,
13055        >::from_register(self, 0)
13056    }
13057}
13058impl ::core::default::Default for P30PfsHa {
13059    #[inline(always)]
13060    fn default() -> P30PfsHa {
13061        <crate::RegValueT<P30PfsHa_SPEC> as RegisterValue<_>>::new(0)
13062    }
13063}
13064pub mod p30pfs_ha {
13065
13066    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13067    pub struct Podr_SPEC;
13068    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
13069    impl Podr {
13070        #[doc = "Output low"]
13071        pub const _0: Self = Self::new(0);
13072
13073        #[doc = "Output high"]
13074        pub const _1: Self = Self::new(1);
13075    }
13076    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13077    pub struct Pidr_SPEC;
13078    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
13079    impl Pidr {
13080        #[doc = "Low level"]
13081        pub const _0: Self = Self::new(0);
13082
13083        #[doc = "High level"]
13084        pub const _1: Self = Self::new(1);
13085    }
13086    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13087    pub struct Pdr_SPEC;
13088    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
13089    impl Pdr {
13090        #[doc = "Input (functions as an input pin)"]
13091        pub const _0: Self = Self::new(0);
13092
13093        #[doc = "Output (functions as an output pin)"]
13094        pub const _1: Self = Self::new(1);
13095    }
13096    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13097    pub struct Pcr_SPEC;
13098    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
13099    impl Pcr {
13100        #[doc = "Disable input pull-up"]
13101        pub const _0: Self = Self::new(0);
13102
13103        #[doc = "Enable input pull-up"]
13104        pub const _1: Self = Self::new(1);
13105    }
13106    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13107    pub struct Ncodr_SPEC;
13108    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
13109    impl Ncodr {
13110        #[doc = "Output CMOS"]
13111        pub const _0: Self = Self::new(0);
13112
13113        #[doc = "Output NMOS open-drain"]
13114        pub const _1: Self = Self::new(1);
13115    }
13116    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13117    pub struct Dscr_SPEC;
13118    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
13119    impl Dscr {
13120        #[doc = "Low drive"]
13121        pub const _00: Self = Self::new(0);
13122
13123        #[doc = "Middle drive"]
13124        pub const _01: Self = Self::new(1);
13125
13126        #[doc = "Setting prohibited"]
13127        pub const _10: Self = Self::new(2);
13128
13129        #[doc = "High drive"]
13130        pub const _11: Self = Self::new(3);
13131    }
13132    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13133    pub struct Eofr_SPEC;
13134    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
13135    impl Eofr {
13136        #[doc = "Don\'t care"]
13137        pub const _00: Self = Self::new(0);
13138
13139        #[doc = "Detect rising edge"]
13140        pub const _01: Self = Self::new(1);
13141
13142        #[doc = "Detect falling edge"]
13143        pub const _10: Self = Self::new(2);
13144
13145        #[doc = "Detect both edges"]
13146        pub const _11: Self = Self::new(3);
13147    }
13148    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13149    pub struct Isel_SPEC;
13150    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
13151    impl Isel {
13152        #[doc = "Do not use as IRQn input pin"]
13153        pub const _0: Self = Self::new(0);
13154
13155        #[doc = "Use as IRQn input pin"]
13156        pub const _1: Self = Self::new(1);
13157    }
13158    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13159    pub struct Asel_SPEC;
13160    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
13161    impl Asel {
13162        #[doc = "Do not use as analog pin"]
13163        pub const _0: Self = Self::new(0);
13164
13165        #[doc = "Use as analog pin"]
13166        pub const _1: Self = Self::new(1);
13167    }
13168}
13169#[doc(hidden)]
13170#[derive(Copy, Clone, Eq, PartialEq)]
13171pub struct P30PfsBy_SPEC;
13172impl crate::sealed::RegSpec for P30PfsBy_SPEC {
13173    type DataType = u8;
13174}
13175
13176#[doc = "Port 30%s Pin Function Select Register"]
13177pub type P30PfsBy = crate::RegValueT<P30PfsBy_SPEC>;
13178
13179impl P30PfsBy {
13180    #[doc = "Port Output Data"]
13181    #[inline(always)]
13182    pub fn podr(
13183        self,
13184    ) -> crate::common::RegisterField<
13185        0,
13186        0x1,
13187        1,
13188        0,
13189        p30pfs_by::Podr,
13190        p30pfs_by::Podr,
13191        P30PfsBy_SPEC,
13192        crate::common::RW,
13193    > {
13194        crate::common::RegisterField::<
13195            0,
13196            0x1,
13197            1,
13198            0,
13199            p30pfs_by::Podr,
13200            p30pfs_by::Podr,
13201            P30PfsBy_SPEC,
13202            crate::common::RW,
13203        >::from_register(self, 0)
13204    }
13205
13206    #[doc = "Port State"]
13207    #[inline(always)]
13208    pub fn pidr(
13209        self,
13210    ) -> crate::common::RegisterField<
13211        1,
13212        0x1,
13213        1,
13214        0,
13215        p30pfs_by::Pidr,
13216        p30pfs_by::Pidr,
13217        P30PfsBy_SPEC,
13218        crate::common::R,
13219    > {
13220        crate::common::RegisterField::<
13221            1,
13222            0x1,
13223            1,
13224            0,
13225            p30pfs_by::Pidr,
13226            p30pfs_by::Pidr,
13227            P30PfsBy_SPEC,
13228            crate::common::R,
13229        >::from_register(self, 0)
13230    }
13231
13232    #[doc = "Port Direction"]
13233    #[inline(always)]
13234    pub fn pdr(
13235        self,
13236    ) -> crate::common::RegisterField<
13237        2,
13238        0x1,
13239        1,
13240        0,
13241        p30pfs_by::Pdr,
13242        p30pfs_by::Pdr,
13243        P30PfsBy_SPEC,
13244        crate::common::RW,
13245    > {
13246        crate::common::RegisterField::<
13247            2,
13248            0x1,
13249            1,
13250            0,
13251            p30pfs_by::Pdr,
13252            p30pfs_by::Pdr,
13253            P30PfsBy_SPEC,
13254            crate::common::RW,
13255        >::from_register(self, 0)
13256    }
13257
13258    #[doc = "Pull-up Control"]
13259    #[inline(always)]
13260    pub fn pcr(
13261        self,
13262    ) -> crate::common::RegisterField<
13263        4,
13264        0x1,
13265        1,
13266        0,
13267        p30pfs_by::Pcr,
13268        p30pfs_by::Pcr,
13269        P30PfsBy_SPEC,
13270        crate::common::RW,
13271    > {
13272        crate::common::RegisterField::<
13273            4,
13274            0x1,
13275            1,
13276            0,
13277            p30pfs_by::Pcr,
13278            p30pfs_by::Pcr,
13279            P30PfsBy_SPEC,
13280            crate::common::RW,
13281        >::from_register(self, 0)
13282    }
13283
13284    #[doc = "N-Channel Open-Drain Control"]
13285    #[inline(always)]
13286    pub fn ncodr(
13287        self,
13288    ) -> crate::common::RegisterField<
13289        6,
13290        0x1,
13291        1,
13292        0,
13293        p30pfs_by::Ncodr,
13294        p30pfs_by::Ncodr,
13295        P30PfsBy_SPEC,
13296        crate::common::RW,
13297    > {
13298        crate::common::RegisterField::<
13299            6,
13300            0x1,
13301            1,
13302            0,
13303            p30pfs_by::Ncodr,
13304            p30pfs_by::Ncodr,
13305            P30PfsBy_SPEC,
13306            crate::common::RW,
13307        >::from_register(self, 0)
13308    }
13309}
13310impl ::core::default::Default for P30PfsBy {
13311    #[inline(always)]
13312    fn default() -> P30PfsBy {
13313        <crate::RegValueT<P30PfsBy_SPEC> as RegisterValue<_>>::new(0)
13314    }
13315}
13316pub mod p30pfs_by {
13317
13318    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13319    pub struct Podr_SPEC;
13320    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
13321    impl Podr {
13322        #[doc = "Output low"]
13323        pub const _0: Self = Self::new(0);
13324
13325        #[doc = "Output high"]
13326        pub const _1: Self = Self::new(1);
13327    }
13328    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13329    pub struct Pidr_SPEC;
13330    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
13331    impl Pidr {
13332        #[doc = "Low level"]
13333        pub const _0: Self = Self::new(0);
13334
13335        #[doc = "High level"]
13336        pub const _1: Self = Self::new(1);
13337    }
13338    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13339    pub struct Pdr_SPEC;
13340    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
13341    impl Pdr {
13342        #[doc = "Input (functions as an input pin)"]
13343        pub const _0: Self = Self::new(0);
13344
13345        #[doc = "Output (functions as an output pin)"]
13346        pub const _1: Self = Self::new(1);
13347    }
13348    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13349    pub struct Pcr_SPEC;
13350    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
13351    impl Pcr {
13352        #[doc = "Disable input pull-up"]
13353        pub const _0: Self = Self::new(0);
13354
13355        #[doc = "Enable input pull-up"]
13356        pub const _1: Self = Self::new(1);
13357    }
13358    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13359    pub struct Ncodr_SPEC;
13360    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
13361    impl Ncodr {
13362        #[doc = "Output CMOS"]
13363        pub const _0: Self = Self::new(0);
13364
13365        #[doc = "Output NMOS open-drain"]
13366        pub const _1: Self = Self::new(1);
13367    }
13368}
13369#[doc(hidden)]
13370#[derive(Copy, Clone, Eq, PartialEq)]
13371pub struct P40Pfs_SPEC;
13372impl crate::sealed::RegSpec for P40Pfs_SPEC {
13373    type DataType = u32;
13374}
13375
13376#[doc = "Port 40%s Pin Function Select Register"]
13377pub type P40Pfs = crate::RegValueT<P40Pfs_SPEC>;
13378
13379impl P40Pfs {
13380    #[doc = "Port Output Data"]
13381    #[inline(always)]
13382    pub fn podr(
13383        self,
13384    ) -> crate::common::RegisterField<
13385        0,
13386        0x1,
13387        1,
13388        0,
13389        p40pfs::Podr,
13390        p40pfs::Podr,
13391        P40Pfs_SPEC,
13392        crate::common::RW,
13393    > {
13394        crate::common::RegisterField::<
13395            0,
13396            0x1,
13397            1,
13398            0,
13399            p40pfs::Podr,
13400            p40pfs::Podr,
13401            P40Pfs_SPEC,
13402            crate::common::RW,
13403        >::from_register(self, 0)
13404    }
13405
13406    #[doc = "Port State"]
13407    #[inline(always)]
13408    pub fn pidr(
13409        self,
13410    ) -> crate::common::RegisterField<
13411        1,
13412        0x1,
13413        1,
13414        0,
13415        p40pfs::Pidr,
13416        p40pfs::Pidr,
13417        P40Pfs_SPEC,
13418        crate::common::R,
13419    > {
13420        crate::common::RegisterField::<
13421            1,
13422            0x1,
13423            1,
13424            0,
13425            p40pfs::Pidr,
13426            p40pfs::Pidr,
13427            P40Pfs_SPEC,
13428            crate::common::R,
13429        >::from_register(self, 0)
13430    }
13431
13432    #[doc = "Port Direction"]
13433    #[inline(always)]
13434    pub fn pdr(
13435        self,
13436    ) -> crate::common::RegisterField<
13437        2,
13438        0x1,
13439        1,
13440        0,
13441        p40pfs::Pdr,
13442        p40pfs::Pdr,
13443        P40Pfs_SPEC,
13444        crate::common::RW,
13445    > {
13446        crate::common::RegisterField::<
13447            2,
13448            0x1,
13449            1,
13450            0,
13451            p40pfs::Pdr,
13452            p40pfs::Pdr,
13453            P40Pfs_SPEC,
13454            crate::common::RW,
13455        >::from_register(self, 0)
13456    }
13457
13458    #[doc = "Pull-up Control"]
13459    #[inline(always)]
13460    pub fn pcr(
13461        self,
13462    ) -> crate::common::RegisterField<
13463        4,
13464        0x1,
13465        1,
13466        0,
13467        p40pfs::Pcr,
13468        p40pfs::Pcr,
13469        P40Pfs_SPEC,
13470        crate::common::RW,
13471    > {
13472        crate::common::RegisterField::<
13473            4,
13474            0x1,
13475            1,
13476            0,
13477            p40pfs::Pcr,
13478            p40pfs::Pcr,
13479            P40Pfs_SPEC,
13480            crate::common::RW,
13481        >::from_register(self, 0)
13482    }
13483
13484    #[doc = "N-Channel Open-Drain Control"]
13485    #[inline(always)]
13486    pub fn ncodr(
13487        self,
13488    ) -> crate::common::RegisterField<
13489        6,
13490        0x1,
13491        1,
13492        0,
13493        p40pfs::Ncodr,
13494        p40pfs::Ncodr,
13495        P40Pfs_SPEC,
13496        crate::common::RW,
13497    > {
13498        crate::common::RegisterField::<
13499            6,
13500            0x1,
13501            1,
13502            0,
13503            p40pfs::Ncodr,
13504            p40pfs::Ncodr,
13505            P40Pfs_SPEC,
13506            crate::common::RW,
13507        >::from_register(self, 0)
13508    }
13509
13510    #[doc = "Port Drive Capability"]
13511    #[inline(always)]
13512    pub fn dscr(
13513        self,
13514    ) -> crate::common::RegisterField<
13515        10,
13516        0x3,
13517        1,
13518        0,
13519        p40pfs::Dscr,
13520        p40pfs::Dscr,
13521        P40Pfs_SPEC,
13522        crate::common::RW,
13523    > {
13524        crate::common::RegisterField::<
13525            10,
13526            0x3,
13527            1,
13528            0,
13529            p40pfs::Dscr,
13530            p40pfs::Dscr,
13531            P40Pfs_SPEC,
13532            crate::common::RW,
13533        >::from_register(self, 0)
13534    }
13535
13536    #[doc = "Event on Falling/Event on Rising"]
13537    #[inline(always)]
13538    pub fn eofr(
13539        self,
13540    ) -> crate::common::RegisterField<
13541        12,
13542        0x3,
13543        1,
13544        0,
13545        p40pfs::Eofr,
13546        p40pfs::Eofr,
13547        P40Pfs_SPEC,
13548        crate::common::RW,
13549    > {
13550        crate::common::RegisterField::<
13551            12,
13552            0x3,
13553            1,
13554            0,
13555            p40pfs::Eofr,
13556            p40pfs::Eofr,
13557            P40Pfs_SPEC,
13558            crate::common::RW,
13559        >::from_register(self, 0)
13560    }
13561
13562    #[doc = "IRQ Input Enable"]
13563    #[inline(always)]
13564    pub fn isel(
13565        self,
13566    ) -> crate::common::RegisterField<
13567        14,
13568        0x1,
13569        1,
13570        0,
13571        p40pfs::Isel,
13572        p40pfs::Isel,
13573        P40Pfs_SPEC,
13574        crate::common::RW,
13575    > {
13576        crate::common::RegisterField::<
13577            14,
13578            0x1,
13579            1,
13580            0,
13581            p40pfs::Isel,
13582            p40pfs::Isel,
13583            P40Pfs_SPEC,
13584            crate::common::RW,
13585        >::from_register(self, 0)
13586    }
13587
13588    #[doc = "Analog Input Enable"]
13589    #[inline(always)]
13590    pub fn asel(
13591        self,
13592    ) -> crate::common::RegisterField<
13593        15,
13594        0x1,
13595        1,
13596        0,
13597        p40pfs::Asel,
13598        p40pfs::Asel,
13599        P40Pfs_SPEC,
13600        crate::common::RW,
13601    > {
13602        crate::common::RegisterField::<
13603            15,
13604            0x1,
13605            1,
13606            0,
13607            p40pfs::Asel,
13608            p40pfs::Asel,
13609            P40Pfs_SPEC,
13610            crate::common::RW,
13611        >::from_register(self, 0)
13612    }
13613
13614    #[doc = "Port Mode Control"]
13615    #[inline(always)]
13616    pub fn pmr(
13617        self,
13618    ) -> crate::common::RegisterField<
13619        16,
13620        0x1,
13621        1,
13622        0,
13623        p40pfs::Pmr,
13624        p40pfs::Pmr,
13625        P40Pfs_SPEC,
13626        crate::common::RW,
13627    > {
13628        crate::common::RegisterField::<
13629            16,
13630            0x1,
13631            1,
13632            0,
13633            p40pfs::Pmr,
13634            p40pfs::Pmr,
13635            P40Pfs_SPEC,
13636            crate::common::RW,
13637        >::from_register(self, 0)
13638    }
13639
13640    #[doc = "Peripheral Select"]
13641    #[inline(always)]
13642    pub fn psel(
13643        self,
13644    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P40Pfs_SPEC, crate::common::RW> {
13645        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P40Pfs_SPEC,crate::common::RW>::from_register(self,0)
13646    }
13647}
13648impl ::core::default::Default for P40Pfs {
13649    #[inline(always)]
13650    fn default() -> P40Pfs {
13651        <crate::RegValueT<P40Pfs_SPEC> as RegisterValue<_>>::new(0)
13652    }
13653}
13654pub mod p40pfs {
13655
13656    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13657    pub struct Podr_SPEC;
13658    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
13659    impl Podr {
13660        #[doc = "Output low"]
13661        pub const _0: Self = Self::new(0);
13662
13663        #[doc = "Output high"]
13664        pub const _1: Self = Self::new(1);
13665    }
13666    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13667    pub struct Pidr_SPEC;
13668    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
13669    impl Pidr {
13670        #[doc = "Low level"]
13671        pub const _0: Self = Self::new(0);
13672
13673        #[doc = "High level"]
13674        pub const _1: Self = Self::new(1);
13675    }
13676    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13677    pub struct Pdr_SPEC;
13678    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
13679    impl Pdr {
13680        #[doc = "Input (functions as an input pin)"]
13681        pub const _0: Self = Self::new(0);
13682
13683        #[doc = "Output (functions as an output pin)"]
13684        pub const _1: Self = Self::new(1);
13685    }
13686    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13687    pub struct Pcr_SPEC;
13688    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
13689    impl Pcr {
13690        #[doc = "Disable input pull-up"]
13691        pub const _0: Self = Self::new(0);
13692
13693        #[doc = "Enable input pull-up"]
13694        pub const _1: Self = Self::new(1);
13695    }
13696    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13697    pub struct Ncodr_SPEC;
13698    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
13699    impl Ncodr {
13700        #[doc = "Output CMOS"]
13701        pub const _0: Self = Self::new(0);
13702
13703        #[doc = "Output NMOS open-drain"]
13704        pub const _1: Self = Self::new(1);
13705    }
13706    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13707    pub struct Dscr_SPEC;
13708    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
13709    impl Dscr {
13710        #[doc = "Low drive"]
13711        pub const _00: Self = Self::new(0);
13712
13713        #[doc = "Middle drive"]
13714        pub const _01: Self = Self::new(1);
13715
13716        #[doc = "Setting prohibited"]
13717        pub const _10: Self = Self::new(2);
13718
13719        #[doc = "High drive"]
13720        pub const _11: Self = Self::new(3);
13721    }
13722    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13723    pub struct Eofr_SPEC;
13724    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
13725    impl Eofr {
13726        #[doc = "Don\'t care"]
13727        pub const _00: Self = Self::new(0);
13728
13729        #[doc = "Detect rising edge"]
13730        pub const _01: Self = Self::new(1);
13731
13732        #[doc = "Detect falling edge"]
13733        pub const _10: Self = Self::new(2);
13734
13735        #[doc = "Detect both edges"]
13736        pub const _11: Self = Self::new(3);
13737    }
13738    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13739    pub struct Isel_SPEC;
13740    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
13741    impl Isel {
13742        #[doc = "Do not use as IRQn input pin"]
13743        pub const _0: Self = Self::new(0);
13744
13745        #[doc = "Use as IRQn input pin"]
13746        pub const _1: Self = Self::new(1);
13747    }
13748    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13749    pub struct Asel_SPEC;
13750    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
13751    impl Asel {
13752        #[doc = "Do not use as analog pin"]
13753        pub const _0: Self = Self::new(0);
13754
13755        #[doc = "Use as analog pin"]
13756        pub const _1: Self = Self::new(1);
13757    }
13758    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
13759    pub struct Pmr_SPEC;
13760    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
13761    impl Pmr {
13762        #[doc = "Use as general I/O pin"]
13763        pub const _0: Self = Self::new(0);
13764
13765        #[doc = "Use as I/O port for peripheral functions"]
13766        pub const _1: Self = Self::new(1);
13767    }
13768}
13769#[doc(hidden)]
13770#[derive(Copy, Clone, Eq, PartialEq)]
13771pub struct P40PfsHa_SPEC;
13772impl crate::sealed::RegSpec for P40PfsHa_SPEC {
13773    type DataType = u16;
13774}
13775
13776#[doc = "Port 40%s Pin Function Select Register"]
13777pub type P40PfsHa = crate::RegValueT<P40PfsHa_SPEC>;
13778
13779impl P40PfsHa {
13780    #[doc = "Port Output Data"]
13781    #[inline(always)]
13782    pub fn podr(
13783        self,
13784    ) -> crate::common::RegisterField<
13785        0,
13786        0x1,
13787        1,
13788        0,
13789        p40pfs_ha::Podr,
13790        p40pfs_ha::Podr,
13791        P40PfsHa_SPEC,
13792        crate::common::RW,
13793    > {
13794        crate::common::RegisterField::<
13795            0,
13796            0x1,
13797            1,
13798            0,
13799            p40pfs_ha::Podr,
13800            p40pfs_ha::Podr,
13801            P40PfsHa_SPEC,
13802            crate::common::RW,
13803        >::from_register(self, 0)
13804    }
13805
13806    #[doc = "Port State"]
13807    #[inline(always)]
13808    pub fn pidr(
13809        self,
13810    ) -> crate::common::RegisterField<
13811        1,
13812        0x1,
13813        1,
13814        0,
13815        p40pfs_ha::Pidr,
13816        p40pfs_ha::Pidr,
13817        P40PfsHa_SPEC,
13818        crate::common::R,
13819    > {
13820        crate::common::RegisterField::<
13821            1,
13822            0x1,
13823            1,
13824            0,
13825            p40pfs_ha::Pidr,
13826            p40pfs_ha::Pidr,
13827            P40PfsHa_SPEC,
13828            crate::common::R,
13829        >::from_register(self, 0)
13830    }
13831
13832    #[doc = "Port Direction"]
13833    #[inline(always)]
13834    pub fn pdr(
13835        self,
13836    ) -> crate::common::RegisterField<
13837        2,
13838        0x1,
13839        1,
13840        0,
13841        p40pfs_ha::Pdr,
13842        p40pfs_ha::Pdr,
13843        P40PfsHa_SPEC,
13844        crate::common::RW,
13845    > {
13846        crate::common::RegisterField::<
13847            2,
13848            0x1,
13849            1,
13850            0,
13851            p40pfs_ha::Pdr,
13852            p40pfs_ha::Pdr,
13853            P40PfsHa_SPEC,
13854            crate::common::RW,
13855        >::from_register(self, 0)
13856    }
13857
13858    #[doc = "Pull-up Control"]
13859    #[inline(always)]
13860    pub fn pcr(
13861        self,
13862    ) -> crate::common::RegisterField<
13863        4,
13864        0x1,
13865        1,
13866        0,
13867        p40pfs_ha::Pcr,
13868        p40pfs_ha::Pcr,
13869        P40PfsHa_SPEC,
13870        crate::common::RW,
13871    > {
13872        crate::common::RegisterField::<
13873            4,
13874            0x1,
13875            1,
13876            0,
13877            p40pfs_ha::Pcr,
13878            p40pfs_ha::Pcr,
13879            P40PfsHa_SPEC,
13880            crate::common::RW,
13881        >::from_register(self, 0)
13882    }
13883
13884    #[doc = "N-Channel Open-Drain Control"]
13885    #[inline(always)]
13886    pub fn ncodr(
13887        self,
13888    ) -> crate::common::RegisterField<
13889        6,
13890        0x1,
13891        1,
13892        0,
13893        p40pfs_ha::Ncodr,
13894        p40pfs_ha::Ncodr,
13895        P40PfsHa_SPEC,
13896        crate::common::RW,
13897    > {
13898        crate::common::RegisterField::<
13899            6,
13900            0x1,
13901            1,
13902            0,
13903            p40pfs_ha::Ncodr,
13904            p40pfs_ha::Ncodr,
13905            P40PfsHa_SPEC,
13906            crate::common::RW,
13907        >::from_register(self, 0)
13908    }
13909
13910    #[doc = "Port Drive Capability"]
13911    #[inline(always)]
13912    pub fn dscr(
13913        self,
13914    ) -> crate::common::RegisterField<
13915        10,
13916        0x3,
13917        1,
13918        0,
13919        p40pfs_ha::Dscr,
13920        p40pfs_ha::Dscr,
13921        P40PfsHa_SPEC,
13922        crate::common::RW,
13923    > {
13924        crate::common::RegisterField::<
13925            10,
13926            0x3,
13927            1,
13928            0,
13929            p40pfs_ha::Dscr,
13930            p40pfs_ha::Dscr,
13931            P40PfsHa_SPEC,
13932            crate::common::RW,
13933        >::from_register(self, 0)
13934    }
13935
13936    #[doc = "Event on Falling/Event on Rising"]
13937    #[inline(always)]
13938    pub fn eofr(
13939        self,
13940    ) -> crate::common::RegisterField<
13941        12,
13942        0x3,
13943        1,
13944        0,
13945        p40pfs_ha::Eofr,
13946        p40pfs_ha::Eofr,
13947        P40PfsHa_SPEC,
13948        crate::common::RW,
13949    > {
13950        crate::common::RegisterField::<
13951            12,
13952            0x3,
13953            1,
13954            0,
13955            p40pfs_ha::Eofr,
13956            p40pfs_ha::Eofr,
13957            P40PfsHa_SPEC,
13958            crate::common::RW,
13959        >::from_register(self, 0)
13960    }
13961
13962    #[doc = "IRQ Input Enable"]
13963    #[inline(always)]
13964    pub fn isel(
13965        self,
13966    ) -> crate::common::RegisterField<
13967        14,
13968        0x1,
13969        1,
13970        0,
13971        p40pfs_ha::Isel,
13972        p40pfs_ha::Isel,
13973        P40PfsHa_SPEC,
13974        crate::common::RW,
13975    > {
13976        crate::common::RegisterField::<
13977            14,
13978            0x1,
13979            1,
13980            0,
13981            p40pfs_ha::Isel,
13982            p40pfs_ha::Isel,
13983            P40PfsHa_SPEC,
13984            crate::common::RW,
13985        >::from_register(self, 0)
13986    }
13987
13988    #[doc = "Analog Input Enable"]
13989    #[inline(always)]
13990    pub fn asel(
13991        self,
13992    ) -> crate::common::RegisterField<
13993        15,
13994        0x1,
13995        1,
13996        0,
13997        p40pfs_ha::Asel,
13998        p40pfs_ha::Asel,
13999        P40PfsHa_SPEC,
14000        crate::common::RW,
14001    > {
14002        crate::common::RegisterField::<
14003            15,
14004            0x1,
14005            1,
14006            0,
14007            p40pfs_ha::Asel,
14008            p40pfs_ha::Asel,
14009            P40PfsHa_SPEC,
14010            crate::common::RW,
14011        >::from_register(self, 0)
14012    }
14013}
14014impl ::core::default::Default for P40PfsHa {
14015    #[inline(always)]
14016    fn default() -> P40PfsHa {
14017        <crate::RegValueT<P40PfsHa_SPEC> as RegisterValue<_>>::new(0)
14018    }
14019}
14020pub mod p40pfs_ha {
14021
14022    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14023    pub struct Podr_SPEC;
14024    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
14025    impl Podr {
14026        #[doc = "Output low"]
14027        pub const _0: Self = Self::new(0);
14028
14029        #[doc = "Output high"]
14030        pub const _1: Self = Self::new(1);
14031    }
14032    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14033    pub struct Pidr_SPEC;
14034    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
14035    impl Pidr {
14036        #[doc = "Low level"]
14037        pub const _0: Self = Self::new(0);
14038
14039        #[doc = "High level"]
14040        pub const _1: Self = Self::new(1);
14041    }
14042    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14043    pub struct Pdr_SPEC;
14044    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
14045    impl Pdr {
14046        #[doc = "Input (functions as an input pin)"]
14047        pub const _0: Self = Self::new(0);
14048
14049        #[doc = "Output (functions as an output pin)"]
14050        pub const _1: Self = Self::new(1);
14051    }
14052    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14053    pub struct Pcr_SPEC;
14054    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
14055    impl Pcr {
14056        #[doc = "Disable input pull-up"]
14057        pub const _0: Self = Self::new(0);
14058
14059        #[doc = "Enable input pull-up"]
14060        pub const _1: Self = Self::new(1);
14061    }
14062    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14063    pub struct Ncodr_SPEC;
14064    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
14065    impl Ncodr {
14066        #[doc = "Output CMOS"]
14067        pub const _0: Self = Self::new(0);
14068
14069        #[doc = "Output NMOS open-drain"]
14070        pub const _1: Self = Self::new(1);
14071    }
14072    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14073    pub struct Dscr_SPEC;
14074    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
14075    impl Dscr {
14076        #[doc = "Low drive"]
14077        pub const _00: Self = Self::new(0);
14078
14079        #[doc = "Middle drive"]
14080        pub const _01: Self = Self::new(1);
14081
14082        #[doc = "Setting prohibited"]
14083        pub const _10: Self = Self::new(2);
14084
14085        #[doc = "High drive"]
14086        pub const _11: Self = Self::new(3);
14087    }
14088    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14089    pub struct Eofr_SPEC;
14090    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
14091    impl Eofr {
14092        #[doc = "Don\'t care"]
14093        pub const _00: Self = Self::new(0);
14094
14095        #[doc = "Detect rising edge"]
14096        pub const _01: Self = Self::new(1);
14097
14098        #[doc = "Detect falling edge"]
14099        pub const _10: Self = Self::new(2);
14100
14101        #[doc = "Detect both edges"]
14102        pub const _11: Self = Self::new(3);
14103    }
14104    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14105    pub struct Isel_SPEC;
14106    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
14107    impl Isel {
14108        #[doc = "Do not use as IRQn input pin"]
14109        pub const _0: Self = Self::new(0);
14110
14111        #[doc = "Use as IRQn input pin"]
14112        pub const _1: Self = Self::new(1);
14113    }
14114    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14115    pub struct Asel_SPEC;
14116    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
14117    impl Asel {
14118        #[doc = "Do not use as analog pin"]
14119        pub const _0: Self = Self::new(0);
14120
14121        #[doc = "Use as analog pin"]
14122        pub const _1: Self = Self::new(1);
14123    }
14124}
14125#[doc(hidden)]
14126#[derive(Copy, Clone, Eq, PartialEq)]
14127pub struct P40PfsBy_SPEC;
14128impl crate::sealed::RegSpec for P40PfsBy_SPEC {
14129    type DataType = u8;
14130}
14131
14132#[doc = "Port 40%s Pin Function Select Register"]
14133pub type P40PfsBy = crate::RegValueT<P40PfsBy_SPEC>;
14134
14135impl P40PfsBy {
14136    #[doc = "Port Output Data"]
14137    #[inline(always)]
14138    pub fn podr(
14139        self,
14140    ) -> crate::common::RegisterField<
14141        0,
14142        0x1,
14143        1,
14144        0,
14145        p40pfs_by::Podr,
14146        p40pfs_by::Podr,
14147        P40PfsBy_SPEC,
14148        crate::common::RW,
14149    > {
14150        crate::common::RegisterField::<
14151            0,
14152            0x1,
14153            1,
14154            0,
14155            p40pfs_by::Podr,
14156            p40pfs_by::Podr,
14157            P40PfsBy_SPEC,
14158            crate::common::RW,
14159        >::from_register(self, 0)
14160    }
14161
14162    #[doc = "Port State"]
14163    #[inline(always)]
14164    pub fn pidr(
14165        self,
14166    ) -> crate::common::RegisterField<
14167        1,
14168        0x1,
14169        1,
14170        0,
14171        p40pfs_by::Pidr,
14172        p40pfs_by::Pidr,
14173        P40PfsBy_SPEC,
14174        crate::common::R,
14175    > {
14176        crate::common::RegisterField::<
14177            1,
14178            0x1,
14179            1,
14180            0,
14181            p40pfs_by::Pidr,
14182            p40pfs_by::Pidr,
14183            P40PfsBy_SPEC,
14184            crate::common::R,
14185        >::from_register(self, 0)
14186    }
14187
14188    #[doc = "Port Direction"]
14189    #[inline(always)]
14190    pub fn pdr(
14191        self,
14192    ) -> crate::common::RegisterField<
14193        2,
14194        0x1,
14195        1,
14196        0,
14197        p40pfs_by::Pdr,
14198        p40pfs_by::Pdr,
14199        P40PfsBy_SPEC,
14200        crate::common::RW,
14201    > {
14202        crate::common::RegisterField::<
14203            2,
14204            0x1,
14205            1,
14206            0,
14207            p40pfs_by::Pdr,
14208            p40pfs_by::Pdr,
14209            P40PfsBy_SPEC,
14210            crate::common::RW,
14211        >::from_register(self, 0)
14212    }
14213
14214    #[doc = "Pull-up Control"]
14215    #[inline(always)]
14216    pub fn pcr(
14217        self,
14218    ) -> crate::common::RegisterField<
14219        4,
14220        0x1,
14221        1,
14222        0,
14223        p40pfs_by::Pcr,
14224        p40pfs_by::Pcr,
14225        P40PfsBy_SPEC,
14226        crate::common::RW,
14227    > {
14228        crate::common::RegisterField::<
14229            4,
14230            0x1,
14231            1,
14232            0,
14233            p40pfs_by::Pcr,
14234            p40pfs_by::Pcr,
14235            P40PfsBy_SPEC,
14236            crate::common::RW,
14237        >::from_register(self, 0)
14238    }
14239
14240    #[doc = "N-Channel Open-Drain Control"]
14241    #[inline(always)]
14242    pub fn ncodr(
14243        self,
14244    ) -> crate::common::RegisterField<
14245        6,
14246        0x1,
14247        1,
14248        0,
14249        p40pfs_by::Ncodr,
14250        p40pfs_by::Ncodr,
14251        P40PfsBy_SPEC,
14252        crate::common::RW,
14253    > {
14254        crate::common::RegisterField::<
14255            6,
14256            0x1,
14257            1,
14258            0,
14259            p40pfs_by::Ncodr,
14260            p40pfs_by::Ncodr,
14261            P40PfsBy_SPEC,
14262            crate::common::RW,
14263        >::from_register(self, 0)
14264    }
14265}
14266impl ::core::default::Default for P40PfsBy {
14267    #[inline(always)]
14268    fn default() -> P40PfsBy {
14269        <crate::RegValueT<P40PfsBy_SPEC> as RegisterValue<_>>::new(0)
14270    }
14271}
14272pub mod p40pfs_by {
14273
14274    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14275    pub struct Podr_SPEC;
14276    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
14277    impl Podr {
14278        #[doc = "Output low"]
14279        pub const _0: Self = Self::new(0);
14280
14281        #[doc = "Output high"]
14282        pub const _1: Self = Self::new(1);
14283    }
14284    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14285    pub struct Pidr_SPEC;
14286    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
14287    impl Pidr {
14288        #[doc = "Low level"]
14289        pub const _0: Self = Self::new(0);
14290
14291        #[doc = "High level"]
14292        pub const _1: Self = Self::new(1);
14293    }
14294    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14295    pub struct Pdr_SPEC;
14296    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
14297    impl Pdr {
14298        #[doc = "Input (functions as an input pin)"]
14299        pub const _0: Self = Self::new(0);
14300
14301        #[doc = "Output (functions as an output pin)"]
14302        pub const _1: Self = Self::new(1);
14303    }
14304    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14305    pub struct Pcr_SPEC;
14306    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
14307    impl Pcr {
14308        #[doc = "Disable input pull-up"]
14309        pub const _0: Self = Self::new(0);
14310
14311        #[doc = "Enable input pull-up"]
14312        pub const _1: Self = Self::new(1);
14313    }
14314    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14315    pub struct Ncodr_SPEC;
14316    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
14317    impl Ncodr {
14318        #[doc = "Output CMOS"]
14319        pub const _0: Self = Self::new(0);
14320
14321        #[doc = "Output NMOS open-drain"]
14322        pub const _1: Self = Self::new(1);
14323    }
14324}
14325#[doc(hidden)]
14326#[derive(Copy, Clone, Eq, PartialEq)]
14327pub struct P4Pfs_SPEC;
14328impl crate::sealed::RegSpec for P4Pfs_SPEC {
14329    type DataType = u32;
14330}
14331
14332#[doc = "Port 4%s Pin Function Select Register"]
14333pub type P4Pfs = crate::RegValueT<P4Pfs_SPEC>;
14334
14335impl P4Pfs {
14336    #[doc = "Port Output Data"]
14337    #[inline(always)]
14338    pub fn podr(
14339        self,
14340    ) -> crate::common::RegisterField<
14341        0,
14342        0x1,
14343        1,
14344        0,
14345        p4pfs::Podr,
14346        p4pfs::Podr,
14347        P4Pfs_SPEC,
14348        crate::common::RW,
14349    > {
14350        crate::common::RegisterField::<
14351            0,
14352            0x1,
14353            1,
14354            0,
14355            p4pfs::Podr,
14356            p4pfs::Podr,
14357            P4Pfs_SPEC,
14358            crate::common::RW,
14359        >::from_register(self, 0)
14360    }
14361
14362    #[doc = "Port State"]
14363    #[inline(always)]
14364    pub fn pidr(
14365        self,
14366    ) -> crate::common::RegisterField<
14367        1,
14368        0x1,
14369        1,
14370        0,
14371        p4pfs::Pidr,
14372        p4pfs::Pidr,
14373        P4Pfs_SPEC,
14374        crate::common::R,
14375    > {
14376        crate::common::RegisterField::<
14377            1,
14378            0x1,
14379            1,
14380            0,
14381            p4pfs::Pidr,
14382            p4pfs::Pidr,
14383            P4Pfs_SPEC,
14384            crate::common::R,
14385        >::from_register(self, 0)
14386    }
14387
14388    #[doc = "Port Direction"]
14389    #[inline(always)]
14390    pub fn pdr(
14391        self,
14392    ) -> crate::common::RegisterField<
14393        2,
14394        0x1,
14395        1,
14396        0,
14397        p4pfs::Pdr,
14398        p4pfs::Pdr,
14399        P4Pfs_SPEC,
14400        crate::common::RW,
14401    > {
14402        crate::common::RegisterField::<
14403            2,
14404            0x1,
14405            1,
14406            0,
14407            p4pfs::Pdr,
14408            p4pfs::Pdr,
14409            P4Pfs_SPEC,
14410            crate::common::RW,
14411        >::from_register(self, 0)
14412    }
14413
14414    #[doc = "Pull-up Control"]
14415    #[inline(always)]
14416    pub fn pcr(
14417        self,
14418    ) -> crate::common::RegisterField<
14419        4,
14420        0x1,
14421        1,
14422        0,
14423        p4pfs::Pcr,
14424        p4pfs::Pcr,
14425        P4Pfs_SPEC,
14426        crate::common::RW,
14427    > {
14428        crate::common::RegisterField::<
14429            4,
14430            0x1,
14431            1,
14432            0,
14433            p4pfs::Pcr,
14434            p4pfs::Pcr,
14435            P4Pfs_SPEC,
14436            crate::common::RW,
14437        >::from_register(self, 0)
14438    }
14439
14440    #[doc = "N-Channel Open-Drain Control"]
14441    #[inline(always)]
14442    pub fn ncodr(
14443        self,
14444    ) -> crate::common::RegisterField<
14445        6,
14446        0x1,
14447        1,
14448        0,
14449        p4pfs::Ncodr,
14450        p4pfs::Ncodr,
14451        P4Pfs_SPEC,
14452        crate::common::RW,
14453    > {
14454        crate::common::RegisterField::<
14455            6,
14456            0x1,
14457            1,
14458            0,
14459            p4pfs::Ncodr,
14460            p4pfs::Ncodr,
14461            P4Pfs_SPEC,
14462            crate::common::RW,
14463        >::from_register(self, 0)
14464    }
14465
14466    #[doc = "Port Drive Capability"]
14467    #[inline(always)]
14468    pub fn dscr(
14469        self,
14470    ) -> crate::common::RegisterField<
14471        10,
14472        0x3,
14473        1,
14474        0,
14475        p4pfs::Dscr,
14476        p4pfs::Dscr,
14477        P4Pfs_SPEC,
14478        crate::common::RW,
14479    > {
14480        crate::common::RegisterField::<
14481            10,
14482            0x3,
14483            1,
14484            0,
14485            p4pfs::Dscr,
14486            p4pfs::Dscr,
14487            P4Pfs_SPEC,
14488            crate::common::RW,
14489        >::from_register(self, 0)
14490    }
14491
14492    #[doc = "Event on Falling/Event on Rising"]
14493    #[inline(always)]
14494    pub fn eofr(
14495        self,
14496    ) -> crate::common::RegisterField<
14497        12,
14498        0x3,
14499        1,
14500        0,
14501        p4pfs::Eofr,
14502        p4pfs::Eofr,
14503        P4Pfs_SPEC,
14504        crate::common::RW,
14505    > {
14506        crate::common::RegisterField::<
14507            12,
14508            0x3,
14509            1,
14510            0,
14511            p4pfs::Eofr,
14512            p4pfs::Eofr,
14513            P4Pfs_SPEC,
14514            crate::common::RW,
14515        >::from_register(self, 0)
14516    }
14517
14518    #[doc = "IRQ Input Enable"]
14519    #[inline(always)]
14520    pub fn isel(
14521        self,
14522    ) -> crate::common::RegisterField<
14523        14,
14524        0x1,
14525        1,
14526        0,
14527        p4pfs::Isel,
14528        p4pfs::Isel,
14529        P4Pfs_SPEC,
14530        crate::common::RW,
14531    > {
14532        crate::common::RegisterField::<
14533            14,
14534            0x1,
14535            1,
14536            0,
14537            p4pfs::Isel,
14538            p4pfs::Isel,
14539            P4Pfs_SPEC,
14540            crate::common::RW,
14541        >::from_register(self, 0)
14542    }
14543
14544    #[doc = "Analog Input Enable"]
14545    #[inline(always)]
14546    pub fn asel(
14547        self,
14548    ) -> crate::common::RegisterField<
14549        15,
14550        0x1,
14551        1,
14552        0,
14553        p4pfs::Asel,
14554        p4pfs::Asel,
14555        P4Pfs_SPEC,
14556        crate::common::RW,
14557    > {
14558        crate::common::RegisterField::<
14559            15,
14560            0x1,
14561            1,
14562            0,
14563            p4pfs::Asel,
14564            p4pfs::Asel,
14565            P4Pfs_SPEC,
14566            crate::common::RW,
14567        >::from_register(self, 0)
14568    }
14569
14570    #[doc = "Port Mode Control"]
14571    #[inline(always)]
14572    pub fn pmr(
14573        self,
14574    ) -> crate::common::RegisterField<
14575        16,
14576        0x1,
14577        1,
14578        0,
14579        p4pfs::Pmr,
14580        p4pfs::Pmr,
14581        P4Pfs_SPEC,
14582        crate::common::RW,
14583    > {
14584        crate::common::RegisterField::<
14585            16,
14586            0x1,
14587            1,
14588            0,
14589            p4pfs::Pmr,
14590            p4pfs::Pmr,
14591            P4Pfs_SPEC,
14592            crate::common::RW,
14593        >::from_register(self, 0)
14594    }
14595
14596    #[doc = "Peripheral Select"]
14597    #[inline(always)]
14598    pub fn psel(
14599        self,
14600    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P4Pfs_SPEC, crate::common::RW> {
14601        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P4Pfs_SPEC,crate::common::RW>::from_register(self,0)
14602    }
14603}
14604impl ::core::default::Default for P4Pfs {
14605    #[inline(always)]
14606    fn default() -> P4Pfs {
14607        <crate::RegValueT<P4Pfs_SPEC> as RegisterValue<_>>::new(0)
14608    }
14609}
14610pub mod p4pfs {
14611
14612    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14613    pub struct Podr_SPEC;
14614    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
14615    impl Podr {
14616        #[doc = "Output low"]
14617        pub const _0: Self = Self::new(0);
14618
14619        #[doc = "Output high"]
14620        pub const _1: Self = Self::new(1);
14621    }
14622    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14623    pub struct Pidr_SPEC;
14624    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
14625    impl Pidr {
14626        #[doc = "Low level"]
14627        pub const _0: Self = Self::new(0);
14628
14629        #[doc = "High level"]
14630        pub const _1: Self = Self::new(1);
14631    }
14632    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14633    pub struct Pdr_SPEC;
14634    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
14635    impl Pdr {
14636        #[doc = "Input (functions as an input pin)"]
14637        pub const _0: Self = Self::new(0);
14638
14639        #[doc = "Output (functions as an output pin)"]
14640        pub const _1: Self = Self::new(1);
14641    }
14642    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14643    pub struct Pcr_SPEC;
14644    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
14645    impl Pcr {
14646        #[doc = "Disable input pull-up"]
14647        pub const _0: Self = Self::new(0);
14648
14649        #[doc = "Enable input pull-up"]
14650        pub const _1: Self = Self::new(1);
14651    }
14652    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14653    pub struct Ncodr_SPEC;
14654    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
14655    impl Ncodr {
14656        #[doc = "Output CMOS"]
14657        pub const _0: Self = Self::new(0);
14658
14659        #[doc = "Output NMOS open-drain"]
14660        pub const _1: Self = Self::new(1);
14661    }
14662    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14663    pub struct Dscr_SPEC;
14664    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
14665    impl Dscr {
14666        #[doc = "Low drive"]
14667        pub const _00: Self = Self::new(0);
14668
14669        #[doc = "Middle drive"]
14670        pub const _01: Self = Self::new(1);
14671
14672        #[doc = "Setting prohibited"]
14673        pub const _10: Self = Self::new(2);
14674
14675        #[doc = "High drive"]
14676        pub const _11: Self = Self::new(3);
14677    }
14678    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14679    pub struct Eofr_SPEC;
14680    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
14681    impl Eofr {
14682        #[doc = "Don\'t care"]
14683        pub const _00: Self = Self::new(0);
14684
14685        #[doc = "Detect rising edge"]
14686        pub const _01: Self = Self::new(1);
14687
14688        #[doc = "Detect falling edge"]
14689        pub const _10: Self = Self::new(2);
14690
14691        #[doc = "Detect both edges"]
14692        pub const _11: Self = Self::new(3);
14693    }
14694    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14695    pub struct Isel_SPEC;
14696    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
14697    impl Isel {
14698        #[doc = "Do not use as IRQn input pin"]
14699        pub const _0: Self = Self::new(0);
14700
14701        #[doc = "Use as IRQn input pin"]
14702        pub const _1: Self = Self::new(1);
14703    }
14704    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14705    pub struct Asel_SPEC;
14706    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
14707    impl Asel {
14708        #[doc = "Do not use as analog pin"]
14709        pub const _0: Self = Self::new(0);
14710
14711        #[doc = "Use as analog pin"]
14712        pub const _1: Self = Self::new(1);
14713    }
14714    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14715    pub struct Pmr_SPEC;
14716    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
14717    impl Pmr {
14718        #[doc = "Use as general I/O pin"]
14719        pub const _0: Self = Self::new(0);
14720
14721        #[doc = "Use as I/O port for peripheral functions"]
14722        pub const _1: Self = Self::new(1);
14723    }
14724}
14725#[doc(hidden)]
14726#[derive(Copy, Clone, Eq, PartialEq)]
14727pub struct P4PfsHa_SPEC;
14728impl crate::sealed::RegSpec for P4PfsHa_SPEC {
14729    type DataType = u16;
14730}
14731
14732#[doc = "Port 4%s Pin Function Select Register"]
14733pub type P4PfsHa = crate::RegValueT<P4PfsHa_SPEC>;
14734
14735impl P4PfsHa {
14736    #[doc = "Port Output Data"]
14737    #[inline(always)]
14738    pub fn podr(
14739        self,
14740    ) -> crate::common::RegisterField<
14741        0,
14742        0x1,
14743        1,
14744        0,
14745        p4pfs_ha::Podr,
14746        p4pfs_ha::Podr,
14747        P4PfsHa_SPEC,
14748        crate::common::RW,
14749    > {
14750        crate::common::RegisterField::<
14751            0,
14752            0x1,
14753            1,
14754            0,
14755            p4pfs_ha::Podr,
14756            p4pfs_ha::Podr,
14757            P4PfsHa_SPEC,
14758            crate::common::RW,
14759        >::from_register(self, 0)
14760    }
14761
14762    #[doc = "Port State"]
14763    #[inline(always)]
14764    pub fn pidr(
14765        self,
14766    ) -> crate::common::RegisterField<
14767        1,
14768        0x1,
14769        1,
14770        0,
14771        p4pfs_ha::Pidr,
14772        p4pfs_ha::Pidr,
14773        P4PfsHa_SPEC,
14774        crate::common::R,
14775    > {
14776        crate::common::RegisterField::<
14777            1,
14778            0x1,
14779            1,
14780            0,
14781            p4pfs_ha::Pidr,
14782            p4pfs_ha::Pidr,
14783            P4PfsHa_SPEC,
14784            crate::common::R,
14785        >::from_register(self, 0)
14786    }
14787
14788    #[doc = "Port Direction"]
14789    #[inline(always)]
14790    pub fn pdr(
14791        self,
14792    ) -> crate::common::RegisterField<
14793        2,
14794        0x1,
14795        1,
14796        0,
14797        p4pfs_ha::Pdr,
14798        p4pfs_ha::Pdr,
14799        P4PfsHa_SPEC,
14800        crate::common::RW,
14801    > {
14802        crate::common::RegisterField::<
14803            2,
14804            0x1,
14805            1,
14806            0,
14807            p4pfs_ha::Pdr,
14808            p4pfs_ha::Pdr,
14809            P4PfsHa_SPEC,
14810            crate::common::RW,
14811        >::from_register(self, 0)
14812    }
14813
14814    #[doc = "Pull-up Control"]
14815    #[inline(always)]
14816    pub fn pcr(
14817        self,
14818    ) -> crate::common::RegisterField<
14819        4,
14820        0x1,
14821        1,
14822        0,
14823        p4pfs_ha::Pcr,
14824        p4pfs_ha::Pcr,
14825        P4PfsHa_SPEC,
14826        crate::common::RW,
14827    > {
14828        crate::common::RegisterField::<
14829            4,
14830            0x1,
14831            1,
14832            0,
14833            p4pfs_ha::Pcr,
14834            p4pfs_ha::Pcr,
14835            P4PfsHa_SPEC,
14836            crate::common::RW,
14837        >::from_register(self, 0)
14838    }
14839
14840    #[doc = "N-Channel Open-Drain Control"]
14841    #[inline(always)]
14842    pub fn ncodr(
14843        self,
14844    ) -> crate::common::RegisterField<
14845        6,
14846        0x1,
14847        1,
14848        0,
14849        p4pfs_ha::Ncodr,
14850        p4pfs_ha::Ncodr,
14851        P4PfsHa_SPEC,
14852        crate::common::RW,
14853    > {
14854        crate::common::RegisterField::<
14855            6,
14856            0x1,
14857            1,
14858            0,
14859            p4pfs_ha::Ncodr,
14860            p4pfs_ha::Ncodr,
14861            P4PfsHa_SPEC,
14862            crate::common::RW,
14863        >::from_register(self, 0)
14864    }
14865
14866    #[doc = "Port Drive Capability"]
14867    #[inline(always)]
14868    pub fn dscr(
14869        self,
14870    ) -> crate::common::RegisterField<
14871        10,
14872        0x3,
14873        1,
14874        0,
14875        p4pfs_ha::Dscr,
14876        p4pfs_ha::Dscr,
14877        P4PfsHa_SPEC,
14878        crate::common::RW,
14879    > {
14880        crate::common::RegisterField::<
14881            10,
14882            0x3,
14883            1,
14884            0,
14885            p4pfs_ha::Dscr,
14886            p4pfs_ha::Dscr,
14887            P4PfsHa_SPEC,
14888            crate::common::RW,
14889        >::from_register(self, 0)
14890    }
14891
14892    #[doc = "Event on Falling/Event on Rising"]
14893    #[inline(always)]
14894    pub fn eofr(
14895        self,
14896    ) -> crate::common::RegisterField<
14897        12,
14898        0x3,
14899        1,
14900        0,
14901        p4pfs_ha::Eofr,
14902        p4pfs_ha::Eofr,
14903        P4PfsHa_SPEC,
14904        crate::common::RW,
14905    > {
14906        crate::common::RegisterField::<
14907            12,
14908            0x3,
14909            1,
14910            0,
14911            p4pfs_ha::Eofr,
14912            p4pfs_ha::Eofr,
14913            P4PfsHa_SPEC,
14914            crate::common::RW,
14915        >::from_register(self, 0)
14916    }
14917
14918    #[doc = "IRQ Input Enable"]
14919    #[inline(always)]
14920    pub fn isel(
14921        self,
14922    ) -> crate::common::RegisterField<
14923        14,
14924        0x1,
14925        1,
14926        0,
14927        p4pfs_ha::Isel,
14928        p4pfs_ha::Isel,
14929        P4PfsHa_SPEC,
14930        crate::common::RW,
14931    > {
14932        crate::common::RegisterField::<
14933            14,
14934            0x1,
14935            1,
14936            0,
14937            p4pfs_ha::Isel,
14938            p4pfs_ha::Isel,
14939            P4PfsHa_SPEC,
14940            crate::common::RW,
14941        >::from_register(self, 0)
14942    }
14943
14944    #[doc = "Analog Input Enable"]
14945    #[inline(always)]
14946    pub fn asel(
14947        self,
14948    ) -> crate::common::RegisterField<
14949        15,
14950        0x1,
14951        1,
14952        0,
14953        p4pfs_ha::Asel,
14954        p4pfs_ha::Asel,
14955        P4PfsHa_SPEC,
14956        crate::common::RW,
14957    > {
14958        crate::common::RegisterField::<
14959            15,
14960            0x1,
14961            1,
14962            0,
14963            p4pfs_ha::Asel,
14964            p4pfs_ha::Asel,
14965            P4PfsHa_SPEC,
14966            crate::common::RW,
14967        >::from_register(self, 0)
14968    }
14969}
14970impl ::core::default::Default for P4PfsHa {
14971    #[inline(always)]
14972    fn default() -> P4PfsHa {
14973        <crate::RegValueT<P4PfsHa_SPEC> as RegisterValue<_>>::new(0)
14974    }
14975}
14976pub mod p4pfs_ha {
14977
14978    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14979    pub struct Podr_SPEC;
14980    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
14981    impl Podr {
14982        #[doc = "Output low"]
14983        pub const _0: Self = Self::new(0);
14984
14985        #[doc = "Output high"]
14986        pub const _1: Self = Self::new(1);
14987    }
14988    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14989    pub struct Pidr_SPEC;
14990    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
14991    impl Pidr {
14992        #[doc = "Low level"]
14993        pub const _0: Self = Self::new(0);
14994
14995        #[doc = "High level"]
14996        pub const _1: Self = Self::new(1);
14997    }
14998    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
14999    pub struct Pdr_SPEC;
15000    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
15001    impl Pdr {
15002        #[doc = "Input (functions as an input pin)"]
15003        pub const _0: Self = Self::new(0);
15004
15005        #[doc = "Output (functions as an output pin)"]
15006        pub const _1: Self = Self::new(1);
15007    }
15008    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15009    pub struct Pcr_SPEC;
15010    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
15011    impl Pcr {
15012        #[doc = "Disable input pull-up"]
15013        pub const _0: Self = Self::new(0);
15014
15015        #[doc = "Enable input pull-up"]
15016        pub const _1: Self = Self::new(1);
15017    }
15018    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15019    pub struct Ncodr_SPEC;
15020    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
15021    impl Ncodr {
15022        #[doc = "Output CMOS"]
15023        pub const _0: Self = Self::new(0);
15024
15025        #[doc = "Output NMOS open-drain"]
15026        pub const _1: Self = Self::new(1);
15027    }
15028    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15029    pub struct Dscr_SPEC;
15030    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
15031    impl Dscr {
15032        #[doc = "Low drive"]
15033        pub const _00: Self = Self::new(0);
15034
15035        #[doc = "Middle drive"]
15036        pub const _01: Self = Self::new(1);
15037
15038        #[doc = "Setting prohibited"]
15039        pub const _10: Self = Self::new(2);
15040
15041        #[doc = "High drive"]
15042        pub const _11: Self = Self::new(3);
15043    }
15044    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15045    pub struct Eofr_SPEC;
15046    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
15047    impl Eofr {
15048        #[doc = "Don\'t care"]
15049        pub const _00: Self = Self::new(0);
15050
15051        #[doc = "Detect rising edge"]
15052        pub const _01: Self = Self::new(1);
15053
15054        #[doc = "Detect falling edge"]
15055        pub const _10: Self = Self::new(2);
15056
15057        #[doc = "Detect both edges"]
15058        pub const _11: Self = Self::new(3);
15059    }
15060    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15061    pub struct Isel_SPEC;
15062    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
15063    impl Isel {
15064        #[doc = "Do not use as IRQn input pin"]
15065        pub const _0: Self = Self::new(0);
15066
15067        #[doc = "Use as IRQn input pin"]
15068        pub const _1: Self = Self::new(1);
15069    }
15070    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15071    pub struct Asel_SPEC;
15072    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
15073    impl Asel {
15074        #[doc = "Do not use as analog pin"]
15075        pub const _0: Self = Self::new(0);
15076
15077        #[doc = "Use as analog pin"]
15078        pub const _1: Self = Self::new(1);
15079    }
15080}
15081#[doc(hidden)]
15082#[derive(Copy, Clone, Eq, PartialEq)]
15083pub struct P4PfsBy_SPEC;
15084impl crate::sealed::RegSpec for P4PfsBy_SPEC {
15085    type DataType = u8;
15086}
15087
15088#[doc = "Port 4%s Pin Function Select Register"]
15089pub type P4PfsBy = crate::RegValueT<P4PfsBy_SPEC>;
15090
15091impl P4PfsBy {
15092    #[doc = "Port Output Data"]
15093    #[inline(always)]
15094    pub fn podr(
15095        self,
15096    ) -> crate::common::RegisterField<
15097        0,
15098        0x1,
15099        1,
15100        0,
15101        p4pfs_by::Podr,
15102        p4pfs_by::Podr,
15103        P4PfsBy_SPEC,
15104        crate::common::RW,
15105    > {
15106        crate::common::RegisterField::<
15107            0,
15108            0x1,
15109            1,
15110            0,
15111            p4pfs_by::Podr,
15112            p4pfs_by::Podr,
15113            P4PfsBy_SPEC,
15114            crate::common::RW,
15115        >::from_register(self, 0)
15116    }
15117
15118    #[doc = "Port State"]
15119    #[inline(always)]
15120    pub fn pidr(
15121        self,
15122    ) -> crate::common::RegisterField<
15123        1,
15124        0x1,
15125        1,
15126        0,
15127        p4pfs_by::Pidr,
15128        p4pfs_by::Pidr,
15129        P4PfsBy_SPEC,
15130        crate::common::R,
15131    > {
15132        crate::common::RegisterField::<
15133            1,
15134            0x1,
15135            1,
15136            0,
15137            p4pfs_by::Pidr,
15138            p4pfs_by::Pidr,
15139            P4PfsBy_SPEC,
15140            crate::common::R,
15141        >::from_register(self, 0)
15142    }
15143
15144    #[doc = "Port Direction"]
15145    #[inline(always)]
15146    pub fn pdr(
15147        self,
15148    ) -> crate::common::RegisterField<
15149        2,
15150        0x1,
15151        1,
15152        0,
15153        p4pfs_by::Pdr,
15154        p4pfs_by::Pdr,
15155        P4PfsBy_SPEC,
15156        crate::common::RW,
15157    > {
15158        crate::common::RegisterField::<
15159            2,
15160            0x1,
15161            1,
15162            0,
15163            p4pfs_by::Pdr,
15164            p4pfs_by::Pdr,
15165            P4PfsBy_SPEC,
15166            crate::common::RW,
15167        >::from_register(self, 0)
15168    }
15169
15170    #[doc = "Pull-up Control"]
15171    #[inline(always)]
15172    pub fn pcr(
15173        self,
15174    ) -> crate::common::RegisterField<
15175        4,
15176        0x1,
15177        1,
15178        0,
15179        p4pfs_by::Pcr,
15180        p4pfs_by::Pcr,
15181        P4PfsBy_SPEC,
15182        crate::common::RW,
15183    > {
15184        crate::common::RegisterField::<
15185            4,
15186            0x1,
15187            1,
15188            0,
15189            p4pfs_by::Pcr,
15190            p4pfs_by::Pcr,
15191            P4PfsBy_SPEC,
15192            crate::common::RW,
15193        >::from_register(self, 0)
15194    }
15195
15196    #[doc = "N-Channel Open-Drain Control"]
15197    #[inline(always)]
15198    pub fn ncodr(
15199        self,
15200    ) -> crate::common::RegisterField<
15201        6,
15202        0x1,
15203        1,
15204        0,
15205        p4pfs_by::Ncodr,
15206        p4pfs_by::Ncodr,
15207        P4PfsBy_SPEC,
15208        crate::common::RW,
15209    > {
15210        crate::common::RegisterField::<
15211            6,
15212            0x1,
15213            1,
15214            0,
15215            p4pfs_by::Ncodr,
15216            p4pfs_by::Ncodr,
15217            P4PfsBy_SPEC,
15218            crate::common::RW,
15219        >::from_register(self, 0)
15220    }
15221}
15222impl ::core::default::Default for P4PfsBy {
15223    #[inline(always)]
15224    fn default() -> P4PfsBy {
15225        <crate::RegValueT<P4PfsBy_SPEC> as RegisterValue<_>>::new(0)
15226    }
15227}
15228pub mod p4pfs_by {
15229
15230    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15231    pub struct Podr_SPEC;
15232    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
15233    impl Podr {
15234        #[doc = "Output low"]
15235        pub const _0: Self = Self::new(0);
15236
15237        #[doc = "Output high"]
15238        pub const _1: Self = Self::new(1);
15239    }
15240    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15241    pub struct Pidr_SPEC;
15242    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
15243    impl Pidr {
15244        #[doc = "Low level"]
15245        pub const _0: Self = Self::new(0);
15246
15247        #[doc = "High level"]
15248        pub const _1: Self = Self::new(1);
15249    }
15250    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15251    pub struct Pdr_SPEC;
15252    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
15253    impl Pdr {
15254        #[doc = "Input (functions as an input pin)"]
15255        pub const _0: Self = Self::new(0);
15256
15257        #[doc = "Output (functions as an output pin)"]
15258        pub const _1: Self = Self::new(1);
15259    }
15260    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15261    pub struct Pcr_SPEC;
15262    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
15263    impl Pcr {
15264        #[doc = "Disable input pull-up"]
15265        pub const _0: Self = Self::new(0);
15266
15267        #[doc = "Enable input pull-up"]
15268        pub const _1: Self = Self::new(1);
15269    }
15270    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15271    pub struct Ncodr_SPEC;
15272    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
15273    impl Ncodr {
15274        #[doc = "Output CMOS"]
15275        pub const _0: Self = Self::new(0);
15276
15277        #[doc = "Output NMOS open-drain"]
15278        pub const _1: Self = Self::new(1);
15279    }
15280}
15281#[doc(hidden)]
15282#[derive(Copy, Clone, Eq, PartialEq)]
15283pub struct P50Pfs_SPEC;
15284impl crate::sealed::RegSpec for P50Pfs_SPEC {
15285    type DataType = u32;
15286}
15287
15288#[doc = "Port 50%s Pin Function Select Register"]
15289pub type P50Pfs = crate::RegValueT<P50Pfs_SPEC>;
15290
15291impl P50Pfs {
15292    #[doc = "Port Output Data"]
15293    #[inline(always)]
15294    pub fn podr(
15295        self,
15296    ) -> crate::common::RegisterField<
15297        0,
15298        0x1,
15299        1,
15300        0,
15301        p50pfs::Podr,
15302        p50pfs::Podr,
15303        P50Pfs_SPEC,
15304        crate::common::RW,
15305    > {
15306        crate::common::RegisterField::<
15307            0,
15308            0x1,
15309            1,
15310            0,
15311            p50pfs::Podr,
15312            p50pfs::Podr,
15313            P50Pfs_SPEC,
15314            crate::common::RW,
15315        >::from_register(self, 0)
15316    }
15317
15318    #[doc = "Port State"]
15319    #[inline(always)]
15320    pub fn pidr(
15321        self,
15322    ) -> crate::common::RegisterField<
15323        1,
15324        0x1,
15325        1,
15326        0,
15327        p50pfs::Pidr,
15328        p50pfs::Pidr,
15329        P50Pfs_SPEC,
15330        crate::common::R,
15331    > {
15332        crate::common::RegisterField::<
15333            1,
15334            0x1,
15335            1,
15336            0,
15337            p50pfs::Pidr,
15338            p50pfs::Pidr,
15339            P50Pfs_SPEC,
15340            crate::common::R,
15341        >::from_register(self, 0)
15342    }
15343
15344    #[doc = "Port Direction"]
15345    #[inline(always)]
15346    pub fn pdr(
15347        self,
15348    ) -> crate::common::RegisterField<
15349        2,
15350        0x1,
15351        1,
15352        0,
15353        p50pfs::Pdr,
15354        p50pfs::Pdr,
15355        P50Pfs_SPEC,
15356        crate::common::RW,
15357    > {
15358        crate::common::RegisterField::<
15359            2,
15360            0x1,
15361            1,
15362            0,
15363            p50pfs::Pdr,
15364            p50pfs::Pdr,
15365            P50Pfs_SPEC,
15366            crate::common::RW,
15367        >::from_register(self, 0)
15368    }
15369
15370    #[doc = "Pull-up Control"]
15371    #[inline(always)]
15372    pub fn pcr(
15373        self,
15374    ) -> crate::common::RegisterField<
15375        4,
15376        0x1,
15377        1,
15378        0,
15379        p50pfs::Pcr,
15380        p50pfs::Pcr,
15381        P50Pfs_SPEC,
15382        crate::common::RW,
15383    > {
15384        crate::common::RegisterField::<
15385            4,
15386            0x1,
15387            1,
15388            0,
15389            p50pfs::Pcr,
15390            p50pfs::Pcr,
15391            P50Pfs_SPEC,
15392            crate::common::RW,
15393        >::from_register(self, 0)
15394    }
15395
15396    #[doc = "N-Channel Open-Drain Control"]
15397    #[inline(always)]
15398    pub fn ncodr(
15399        self,
15400    ) -> crate::common::RegisterField<
15401        6,
15402        0x1,
15403        1,
15404        0,
15405        p50pfs::Ncodr,
15406        p50pfs::Ncodr,
15407        P50Pfs_SPEC,
15408        crate::common::RW,
15409    > {
15410        crate::common::RegisterField::<
15411            6,
15412            0x1,
15413            1,
15414            0,
15415            p50pfs::Ncodr,
15416            p50pfs::Ncodr,
15417            P50Pfs_SPEC,
15418            crate::common::RW,
15419        >::from_register(self, 0)
15420    }
15421
15422    #[doc = "Port Drive Capability"]
15423    #[inline(always)]
15424    pub fn dscr(
15425        self,
15426    ) -> crate::common::RegisterField<
15427        10,
15428        0x3,
15429        1,
15430        0,
15431        p50pfs::Dscr,
15432        p50pfs::Dscr,
15433        P50Pfs_SPEC,
15434        crate::common::RW,
15435    > {
15436        crate::common::RegisterField::<
15437            10,
15438            0x3,
15439            1,
15440            0,
15441            p50pfs::Dscr,
15442            p50pfs::Dscr,
15443            P50Pfs_SPEC,
15444            crate::common::RW,
15445        >::from_register(self, 0)
15446    }
15447
15448    #[doc = "Event on Falling/Event on Rising"]
15449    #[inline(always)]
15450    pub fn eofr(
15451        self,
15452    ) -> crate::common::RegisterField<
15453        12,
15454        0x3,
15455        1,
15456        0,
15457        p50pfs::Eofr,
15458        p50pfs::Eofr,
15459        P50Pfs_SPEC,
15460        crate::common::RW,
15461    > {
15462        crate::common::RegisterField::<
15463            12,
15464            0x3,
15465            1,
15466            0,
15467            p50pfs::Eofr,
15468            p50pfs::Eofr,
15469            P50Pfs_SPEC,
15470            crate::common::RW,
15471        >::from_register(self, 0)
15472    }
15473
15474    #[doc = "IRQ Input Enable"]
15475    #[inline(always)]
15476    pub fn isel(
15477        self,
15478    ) -> crate::common::RegisterField<
15479        14,
15480        0x1,
15481        1,
15482        0,
15483        p50pfs::Isel,
15484        p50pfs::Isel,
15485        P50Pfs_SPEC,
15486        crate::common::RW,
15487    > {
15488        crate::common::RegisterField::<
15489            14,
15490            0x1,
15491            1,
15492            0,
15493            p50pfs::Isel,
15494            p50pfs::Isel,
15495            P50Pfs_SPEC,
15496            crate::common::RW,
15497        >::from_register(self, 0)
15498    }
15499
15500    #[doc = "Analog Input Enable"]
15501    #[inline(always)]
15502    pub fn asel(
15503        self,
15504    ) -> crate::common::RegisterField<
15505        15,
15506        0x1,
15507        1,
15508        0,
15509        p50pfs::Asel,
15510        p50pfs::Asel,
15511        P50Pfs_SPEC,
15512        crate::common::RW,
15513    > {
15514        crate::common::RegisterField::<
15515            15,
15516            0x1,
15517            1,
15518            0,
15519            p50pfs::Asel,
15520            p50pfs::Asel,
15521            P50Pfs_SPEC,
15522            crate::common::RW,
15523        >::from_register(self, 0)
15524    }
15525
15526    #[doc = "Port Mode Control"]
15527    #[inline(always)]
15528    pub fn pmr(
15529        self,
15530    ) -> crate::common::RegisterField<
15531        16,
15532        0x1,
15533        1,
15534        0,
15535        p50pfs::Pmr,
15536        p50pfs::Pmr,
15537        P50Pfs_SPEC,
15538        crate::common::RW,
15539    > {
15540        crate::common::RegisterField::<
15541            16,
15542            0x1,
15543            1,
15544            0,
15545            p50pfs::Pmr,
15546            p50pfs::Pmr,
15547            P50Pfs_SPEC,
15548            crate::common::RW,
15549        >::from_register(self, 0)
15550    }
15551
15552    #[doc = "Peripheral Select"]
15553    #[inline(always)]
15554    pub fn psel(
15555        self,
15556    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P50Pfs_SPEC, crate::common::RW> {
15557        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P50Pfs_SPEC,crate::common::RW>::from_register(self,0)
15558    }
15559}
15560impl ::core::default::Default for P50Pfs {
15561    #[inline(always)]
15562    fn default() -> P50Pfs {
15563        <crate::RegValueT<P50Pfs_SPEC> as RegisterValue<_>>::new(0)
15564    }
15565}
15566pub mod p50pfs {
15567
15568    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15569    pub struct Podr_SPEC;
15570    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
15571    impl Podr {
15572        #[doc = "Output low"]
15573        pub const _0: Self = Self::new(0);
15574
15575        #[doc = "Output high"]
15576        pub const _1: Self = Self::new(1);
15577    }
15578    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15579    pub struct Pidr_SPEC;
15580    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
15581    impl Pidr {
15582        #[doc = "Low level"]
15583        pub const _0: Self = Self::new(0);
15584
15585        #[doc = "High level"]
15586        pub const _1: Self = Self::new(1);
15587    }
15588    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15589    pub struct Pdr_SPEC;
15590    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
15591    impl Pdr {
15592        #[doc = "Input (functions as an input pin)"]
15593        pub const _0: Self = Self::new(0);
15594
15595        #[doc = "Output (functions as an output pin)"]
15596        pub const _1: Self = Self::new(1);
15597    }
15598    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15599    pub struct Pcr_SPEC;
15600    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
15601    impl Pcr {
15602        #[doc = "Disable input pull-up"]
15603        pub const _0: Self = Self::new(0);
15604
15605        #[doc = "Enable input pull-up"]
15606        pub const _1: Self = Self::new(1);
15607    }
15608    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15609    pub struct Ncodr_SPEC;
15610    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
15611    impl Ncodr {
15612        #[doc = "Output CMOS"]
15613        pub const _0: Self = Self::new(0);
15614
15615        #[doc = "Output NMOS open-drain"]
15616        pub const _1: Self = Self::new(1);
15617    }
15618    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15619    pub struct Dscr_SPEC;
15620    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
15621    impl Dscr {
15622        #[doc = "Low drive"]
15623        pub const _00: Self = Self::new(0);
15624
15625        #[doc = "Middle drive"]
15626        pub const _01: Self = Self::new(1);
15627
15628        #[doc = "Setting prohibited"]
15629        pub const _10: Self = Self::new(2);
15630
15631        #[doc = "High drive"]
15632        pub const _11: Self = Self::new(3);
15633    }
15634    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15635    pub struct Eofr_SPEC;
15636    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
15637    impl Eofr {
15638        #[doc = "Don\'t care"]
15639        pub const _00: Self = Self::new(0);
15640
15641        #[doc = "Detect rising edge"]
15642        pub const _01: Self = Self::new(1);
15643
15644        #[doc = "Detect falling edge"]
15645        pub const _10: Self = Self::new(2);
15646
15647        #[doc = "Detect both edges"]
15648        pub const _11: Self = Self::new(3);
15649    }
15650    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15651    pub struct Isel_SPEC;
15652    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
15653    impl Isel {
15654        #[doc = "Do not use as IRQn input pin"]
15655        pub const _0: Self = Self::new(0);
15656
15657        #[doc = "Use as IRQn input pin"]
15658        pub const _1: Self = Self::new(1);
15659    }
15660    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15661    pub struct Asel_SPEC;
15662    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
15663    impl Asel {
15664        #[doc = "Do not use as analog pin"]
15665        pub const _0: Self = Self::new(0);
15666
15667        #[doc = "Use as analog pin"]
15668        pub const _1: Self = Self::new(1);
15669    }
15670    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15671    pub struct Pmr_SPEC;
15672    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
15673    impl Pmr {
15674        #[doc = "Use as general I/O pin"]
15675        pub const _0: Self = Self::new(0);
15676
15677        #[doc = "Use as I/O port for peripheral functions"]
15678        pub const _1: Self = Self::new(1);
15679    }
15680}
15681#[doc(hidden)]
15682#[derive(Copy, Clone, Eq, PartialEq)]
15683pub struct P50PfsHa_SPEC;
15684impl crate::sealed::RegSpec for P50PfsHa_SPEC {
15685    type DataType = u16;
15686}
15687
15688#[doc = "Port 50%s Pin Function Select Register"]
15689pub type P50PfsHa = crate::RegValueT<P50PfsHa_SPEC>;
15690
15691impl P50PfsHa {
15692    #[doc = "Port Output Data"]
15693    #[inline(always)]
15694    pub fn podr(
15695        self,
15696    ) -> crate::common::RegisterField<
15697        0,
15698        0x1,
15699        1,
15700        0,
15701        p50pfs_ha::Podr,
15702        p50pfs_ha::Podr,
15703        P50PfsHa_SPEC,
15704        crate::common::RW,
15705    > {
15706        crate::common::RegisterField::<
15707            0,
15708            0x1,
15709            1,
15710            0,
15711            p50pfs_ha::Podr,
15712            p50pfs_ha::Podr,
15713            P50PfsHa_SPEC,
15714            crate::common::RW,
15715        >::from_register(self, 0)
15716    }
15717
15718    #[doc = "Port State"]
15719    #[inline(always)]
15720    pub fn pidr(
15721        self,
15722    ) -> crate::common::RegisterField<
15723        1,
15724        0x1,
15725        1,
15726        0,
15727        p50pfs_ha::Pidr,
15728        p50pfs_ha::Pidr,
15729        P50PfsHa_SPEC,
15730        crate::common::R,
15731    > {
15732        crate::common::RegisterField::<
15733            1,
15734            0x1,
15735            1,
15736            0,
15737            p50pfs_ha::Pidr,
15738            p50pfs_ha::Pidr,
15739            P50PfsHa_SPEC,
15740            crate::common::R,
15741        >::from_register(self, 0)
15742    }
15743
15744    #[doc = "Port Direction"]
15745    #[inline(always)]
15746    pub fn pdr(
15747        self,
15748    ) -> crate::common::RegisterField<
15749        2,
15750        0x1,
15751        1,
15752        0,
15753        p50pfs_ha::Pdr,
15754        p50pfs_ha::Pdr,
15755        P50PfsHa_SPEC,
15756        crate::common::RW,
15757    > {
15758        crate::common::RegisterField::<
15759            2,
15760            0x1,
15761            1,
15762            0,
15763            p50pfs_ha::Pdr,
15764            p50pfs_ha::Pdr,
15765            P50PfsHa_SPEC,
15766            crate::common::RW,
15767        >::from_register(self, 0)
15768    }
15769
15770    #[doc = "Pull-up Control"]
15771    #[inline(always)]
15772    pub fn pcr(
15773        self,
15774    ) -> crate::common::RegisterField<
15775        4,
15776        0x1,
15777        1,
15778        0,
15779        p50pfs_ha::Pcr,
15780        p50pfs_ha::Pcr,
15781        P50PfsHa_SPEC,
15782        crate::common::RW,
15783    > {
15784        crate::common::RegisterField::<
15785            4,
15786            0x1,
15787            1,
15788            0,
15789            p50pfs_ha::Pcr,
15790            p50pfs_ha::Pcr,
15791            P50PfsHa_SPEC,
15792            crate::common::RW,
15793        >::from_register(self, 0)
15794    }
15795
15796    #[doc = "N-Channel Open-Drain Control"]
15797    #[inline(always)]
15798    pub fn ncodr(
15799        self,
15800    ) -> crate::common::RegisterField<
15801        6,
15802        0x1,
15803        1,
15804        0,
15805        p50pfs_ha::Ncodr,
15806        p50pfs_ha::Ncodr,
15807        P50PfsHa_SPEC,
15808        crate::common::RW,
15809    > {
15810        crate::common::RegisterField::<
15811            6,
15812            0x1,
15813            1,
15814            0,
15815            p50pfs_ha::Ncodr,
15816            p50pfs_ha::Ncodr,
15817            P50PfsHa_SPEC,
15818            crate::common::RW,
15819        >::from_register(self, 0)
15820    }
15821
15822    #[doc = "Port Drive Capability"]
15823    #[inline(always)]
15824    pub fn dscr(
15825        self,
15826    ) -> crate::common::RegisterField<
15827        10,
15828        0x3,
15829        1,
15830        0,
15831        p50pfs_ha::Dscr,
15832        p50pfs_ha::Dscr,
15833        P50PfsHa_SPEC,
15834        crate::common::RW,
15835    > {
15836        crate::common::RegisterField::<
15837            10,
15838            0x3,
15839            1,
15840            0,
15841            p50pfs_ha::Dscr,
15842            p50pfs_ha::Dscr,
15843            P50PfsHa_SPEC,
15844            crate::common::RW,
15845        >::from_register(self, 0)
15846    }
15847
15848    #[doc = "Event on Falling/Event on Rising"]
15849    #[inline(always)]
15850    pub fn eofr(
15851        self,
15852    ) -> crate::common::RegisterField<
15853        12,
15854        0x3,
15855        1,
15856        0,
15857        p50pfs_ha::Eofr,
15858        p50pfs_ha::Eofr,
15859        P50PfsHa_SPEC,
15860        crate::common::RW,
15861    > {
15862        crate::common::RegisterField::<
15863            12,
15864            0x3,
15865            1,
15866            0,
15867            p50pfs_ha::Eofr,
15868            p50pfs_ha::Eofr,
15869            P50PfsHa_SPEC,
15870            crate::common::RW,
15871        >::from_register(self, 0)
15872    }
15873
15874    #[doc = "IRQ Input Enable"]
15875    #[inline(always)]
15876    pub fn isel(
15877        self,
15878    ) -> crate::common::RegisterField<
15879        14,
15880        0x1,
15881        1,
15882        0,
15883        p50pfs_ha::Isel,
15884        p50pfs_ha::Isel,
15885        P50PfsHa_SPEC,
15886        crate::common::RW,
15887    > {
15888        crate::common::RegisterField::<
15889            14,
15890            0x1,
15891            1,
15892            0,
15893            p50pfs_ha::Isel,
15894            p50pfs_ha::Isel,
15895            P50PfsHa_SPEC,
15896            crate::common::RW,
15897        >::from_register(self, 0)
15898    }
15899
15900    #[doc = "Analog Input Enable"]
15901    #[inline(always)]
15902    pub fn asel(
15903        self,
15904    ) -> crate::common::RegisterField<
15905        15,
15906        0x1,
15907        1,
15908        0,
15909        p50pfs_ha::Asel,
15910        p50pfs_ha::Asel,
15911        P50PfsHa_SPEC,
15912        crate::common::RW,
15913    > {
15914        crate::common::RegisterField::<
15915            15,
15916            0x1,
15917            1,
15918            0,
15919            p50pfs_ha::Asel,
15920            p50pfs_ha::Asel,
15921            P50PfsHa_SPEC,
15922            crate::common::RW,
15923        >::from_register(self, 0)
15924    }
15925}
15926impl ::core::default::Default for P50PfsHa {
15927    #[inline(always)]
15928    fn default() -> P50PfsHa {
15929        <crate::RegValueT<P50PfsHa_SPEC> as RegisterValue<_>>::new(0)
15930    }
15931}
15932pub mod p50pfs_ha {
15933
15934    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15935    pub struct Podr_SPEC;
15936    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
15937    impl Podr {
15938        #[doc = "Output low"]
15939        pub const _0: Self = Self::new(0);
15940
15941        #[doc = "Output high"]
15942        pub const _1: Self = Self::new(1);
15943    }
15944    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15945    pub struct Pidr_SPEC;
15946    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
15947    impl Pidr {
15948        #[doc = "Low level"]
15949        pub const _0: Self = Self::new(0);
15950
15951        #[doc = "High level"]
15952        pub const _1: Self = Self::new(1);
15953    }
15954    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15955    pub struct Pdr_SPEC;
15956    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
15957    impl Pdr {
15958        #[doc = "Input (functions as an input pin)"]
15959        pub const _0: Self = Self::new(0);
15960
15961        #[doc = "Output (functions as an output pin)"]
15962        pub const _1: Self = Self::new(1);
15963    }
15964    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15965    pub struct Pcr_SPEC;
15966    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
15967    impl Pcr {
15968        #[doc = "Disable input pull-up"]
15969        pub const _0: Self = Self::new(0);
15970
15971        #[doc = "Enable input pull-up"]
15972        pub const _1: Self = Self::new(1);
15973    }
15974    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15975    pub struct Ncodr_SPEC;
15976    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
15977    impl Ncodr {
15978        #[doc = "Output CMOS"]
15979        pub const _0: Self = Self::new(0);
15980
15981        #[doc = "Output NMOS open-drain"]
15982        pub const _1: Self = Self::new(1);
15983    }
15984    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
15985    pub struct Dscr_SPEC;
15986    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
15987    impl Dscr {
15988        #[doc = "Low drive"]
15989        pub const _00: Self = Self::new(0);
15990
15991        #[doc = "Middle drive"]
15992        pub const _01: Self = Self::new(1);
15993
15994        #[doc = "Setting prohibited"]
15995        pub const _10: Self = Self::new(2);
15996
15997        #[doc = "High drive"]
15998        pub const _11: Self = Self::new(3);
15999    }
16000    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16001    pub struct Eofr_SPEC;
16002    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
16003    impl Eofr {
16004        #[doc = "Don\'t care"]
16005        pub const _00: Self = Self::new(0);
16006
16007        #[doc = "Detect rising edge"]
16008        pub const _01: Self = Self::new(1);
16009
16010        #[doc = "Detect falling edge"]
16011        pub const _10: Self = Self::new(2);
16012
16013        #[doc = "Detect both edges"]
16014        pub const _11: Self = Self::new(3);
16015    }
16016    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16017    pub struct Isel_SPEC;
16018    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
16019    impl Isel {
16020        #[doc = "Do not use as IRQn input pin"]
16021        pub const _0: Self = Self::new(0);
16022
16023        #[doc = "Use as IRQn input pin"]
16024        pub const _1: Self = Self::new(1);
16025    }
16026    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16027    pub struct Asel_SPEC;
16028    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
16029    impl Asel {
16030        #[doc = "Do not use as analog pin"]
16031        pub const _0: Self = Self::new(0);
16032
16033        #[doc = "Use as analog pin"]
16034        pub const _1: Self = Self::new(1);
16035    }
16036}
16037#[doc(hidden)]
16038#[derive(Copy, Clone, Eq, PartialEq)]
16039pub struct P50PfsBy_SPEC;
16040impl crate::sealed::RegSpec for P50PfsBy_SPEC {
16041    type DataType = u8;
16042}
16043
16044#[doc = "Port 50%s Pin Function Select Register"]
16045pub type P50PfsBy = crate::RegValueT<P50PfsBy_SPEC>;
16046
16047impl P50PfsBy {
16048    #[doc = "Port Output Data"]
16049    #[inline(always)]
16050    pub fn podr(
16051        self,
16052    ) -> crate::common::RegisterField<
16053        0,
16054        0x1,
16055        1,
16056        0,
16057        p50pfs_by::Podr,
16058        p50pfs_by::Podr,
16059        P50PfsBy_SPEC,
16060        crate::common::RW,
16061    > {
16062        crate::common::RegisterField::<
16063            0,
16064            0x1,
16065            1,
16066            0,
16067            p50pfs_by::Podr,
16068            p50pfs_by::Podr,
16069            P50PfsBy_SPEC,
16070            crate::common::RW,
16071        >::from_register(self, 0)
16072    }
16073
16074    #[doc = "Port State"]
16075    #[inline(always)]
16076    pub fn pidr(
16077        self,
16078    ) -> crate::common::RegisterField<
16079        1,
16080        0x1,
16081        1,
16082        0,
16083        p50pfs_by::Pidr,
16084        p50pfs_by::Pidr,
16085        P50PfsBy_SPEC,
16086        crate::common::R,
16087    > {
16088        crate::common::RegisterField::<
16089            1,
16090            0x1,
16091            1,
16092            0,
16093            p50pfs_by::Pidr,
16094            p50pfs_by::Pidr,
16095            P50PfsBy_SPEC,
16096            crate::common::R,
16097        >::from_register(self, 0)
16098    }
16099
16100    #[doc = "Port Direction"]
16101    #[inline(always)]
16102    pub fn pdr(
16103        self,
16104    ) -> crate::common::RegisterField<
16105        2,
16106        0x1,
16107        1,
16108        0,
16109        p50pfs_by::Pdr,
16110        p50pfs_by::Pdr,
16111        P50PfsBy_SPEC,
16112        crate::common::RW,
16113    > {
16114        crate::common::RegisterField::<
16115            2,
16116            0x1,
16117            1,
16118            0,
16119            p50pfs_by::Pdr,
16120            p50pfs_by::Pdr,
16121            P50PfsBy_SPEC,
16122            crate::common::RW,
16123        >::from_register(self, 0)
16124    }
16125
16126    #[doc = "Pull-up Control"]
16127    #[inline(always)]
16128    pub fn pcr(
16129        self,
16130    ) -> crate::common::RegisterField<
16131        4,
16132        0x1,
16133        1,
16134        0,
16135        p50pfs_by::Pcr,
16136        p50pfs_by::Pcr,
16137        P50PfsBy_SPEC,
16138        crate::common::RW,
16139    > {
16140        crate::common::RegisterField::<
16141            4,
16142            0x1,
16143            1,
16144            0,
16145            p50pfs_by::Pcr,
16146            p50pfs_by::Pcr,
16147            P50PfsBy_SPEC,
16148            crate::common::RW,
16149        >::from_register(self, 0)
16150    }
16151
16152    #[doc = "N-Channel Open-Drain Control"]
16153    #[inline(always)]
16154    pub fn ncodr(
16155        self,
16156    ) -> crate::common::RegisterField<
16157        6,
16158        0x1,
16159        1,
16160        0,
16161        p50pfs_by::Ncodr,
16162        p50pfs_by::Ncodr,
16163        P50PfsBy_SPEC,
16164        crate::common::RW,
16165    > {
16166        crate::common::RegisterField::<
16167            6,
16168            0x1,
16169            1,
16170            0,
16171            p50pfs_by::Ncodr,
16172            p50pfs_by::Ncodr,
16173            P50PfsBy_SPEC,
16174            crate::common::RW,
16175        >::from_register(self, 0)
16176    }
16177}
16178impl ::core::default::Default for P50PfsBy {
16179    #[inline(always)]
16180    fn default() -> P50PfsBy {
16181        <crate::RegValueT<P50PfsBy_SPEC> as RegisterValue<_>>::new(0)
16182    }
16183}
16184pub mod p50pfs_by {
16185
16186    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16187    pub struct Podr_SPEC;
16188    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
16189    impl Podr {
16190        #[doc = "Output low"]
16191        pub const _0: Self = Self::new(0);
16192
16193        #[doc = "Output high"]
16194        pub const _1: Self = Self::new(1);
16195    }
16196    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16197    pub struct Pidr_SPEC;
16198    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
16199    impl Pidr {
16200        #[doc = "Low level"]
16201        pub const _0: Self = Self::new(0);
16202
16203        #[doc = "High level"]
16204        pub const _1: Self = Self::new(1);
16205    }
16206    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16207    pub struct Pdr_SPEC;
16208    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
16209    impl Pdr {
16210        #[doc = "Input (functions as an input pin)"]
16211        pub const _0: Self = Self::new(0);
16212
16213        #[doc = "Output (functions as an output pin)"]
16214        pub const _1: Self = Self::new(1);
16215    }
16216    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16217    pub struct Pcr_SPEC;
16218    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
16219    impl Pcr {
16220        #[doc = "Disable input pull-up"]
16221        pub const _0: Self = Self::new(0);
16222
16223        #[doc = "Enable input pull-up"]
16224        pub const _1: Self = Self::new(1);
16225    }
16226    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16227    pub struct Ncodr_SPEC;
16228    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
16229    impl Ncodr {
16230        #[doc = "Output CMOS"]
16231        pub const _0: Self = Self::new(0);
16232
16233        #[doc = "Output NMOS open-drain"]
16234        pub const _1: Self = Self::new(1);
16235    }
16236}
16237#[doc(hidden)]
16238#[derive(Copy, Clone, Eq, PartialEq)]
16239pub struct P60Pfs_SPEC;
16240impl crate::sealed::RegSpec for P60Pfs_SPEC {
16241    type DataType = u32;
16242}
16243
16244#[doc = "Port 60%s Pin Function Select Register"]
16245pub type P60Pfs = crate::RegValueT<P60Pfs_SPEC>;
16246
16247impl P60Pfs {
16248    #[doc = "Port Output Data"]
16249    #[inline(always)]
16250    pub fn podr(
16251        self,
16252    ) -> crate::common::RegisterField<
16253        0,
16254        0x1,
16255        1,
16256        0,
16257        p60pfs::Podr,
16258        p60pfs::Podr,
16259        P60Pfs_SPEC,
16260        crate::common::RW,
16261    > {
16262        crate::common::RegisterField::<
16263            0,
16264            0x1,
16265            1,
16266            0,
16267            p60pfs::Podr,
16268            p60pfs::Podr,
16269            P60Pfs_SPEC,
16270            crate::common::RW,
16271        >::from_register(self, 0)
16272    }
16273
16274    #[doc = "Port State"]
16275    #[inline(always)]
16276    pub fn pidr(
16277        self,
16278    ) -> crate::common::RegisterField<
16279        1,
16280        0x1,
16281        1,
16282        0,
16283        p60pfs::Pidr,
16284        p60pfs::Pidr,
16285        P60Pfs_SPEC,
16286        crate::common::R,
16287    > {
16288        crate::common::RegisterField::<
16289            1,
16290            0x1,
16291            1,
16292            0,
16293            p60pfs::Pidr,
16294            p60pfs::Pidr,
16295            P60Pfs_SPEC,
16296            crate::common::R,
16297        >::from_register(self, 0)
16298    }
16299
16300    #[doc = "Port Direction"]
16301    #[inline(always)]
16302    pub fn pdr(
16303        self,
16304    ) -> crate::common::RegisterField<
16305        2,
16306        0x1,
16307        1,
16308        0,
16309        p60pfs::Pdr,
16310        p60pfs::Pdr,
16311        P60Pfs_SPEC,
16312        crate::common::RW,
16313    > {
16314        crate::common::RegisterField::<
16315            2,
16316            0x1,
16317            1,
16318            0,
16319            p60pfs::Pdr,
16320            p60pfs::Pdr,
16321            P60Pfs_SPEC,
16322            crate::common::RW,
16323        >::from_register(self, 0)
16324    }
16325
16326    #[doc = "Pull-up Control"]
16327    #[inline(always)]
16328    pub fn pcr(
16329        self,
16330    ) -> crate::common::RegisterField<
16331        4,
16332        0x1,
16333        1,
16334        0,
16335        p60pfs::Pcr,
16336        p60pfs::Pcr,
16337        P60Pfs_SPEC,
16338        crate::common::RW,
16339    > {
16340        crate::common::RegisterField::<
16341            4,
16342            0x1,
16343            1,
16344            0,
16345            p60pfs::Pcr,
16346            p60pfs::Pcr,
16347            P60Pfs_SPEC,
16348            crate::common::RW,
16349        >::from_register(self, 0)
16350    }
16351
16352    #[doc = "N-Channel Open-Drain Control"]
16353    #[inline(always)]
16354    pub fn ncodr(
16355        self,
16356    ) -> crate::common::RegisterField<
16357        6,
16358        0x1,
16359        1,
16360        0,
16361        p60pfs::Ncodr,
16362        p60pfs::Ncodr,
16363        P60Pfs_SPEC,
16364        crate::common::RW,
16365    > {
16366        crate::common::RegisterField::<
16367            6,
16368            0x1,
16369            1,
16370            0,
16371            p60pfs::Ncodr,
16372            p60pfs::Ncodr,
16373            P60Pfs_SPEC,
16374            crate::common::RW,
16375        >::from_register(self, 0)
16376    }
16377
16378    #[doc = "Port Drive Capability"]
16379    #[inline(always)]
16380    pub fn dscr(
16381        self,
16382    ) -> crate::common::RegisterField<
16383        10,
16384        0x3,
16385        1,
16386        0,
16387        p60pfs::Dscr,
16388        p60pfs::Dscr,
16389        P60Pfs_SPEC,
16390        crate::common::RW,
16391    > {
16392        crate::common::RegisterField::<
16393            10,
16394            0x3,
16395            1,
16396            0,
16397            p60pfs::Dscr,
16398            p60pfs::Dscr,
16399            P60Pfs_SPEC,
16400            crate::common::RW,
16401        >::from_register(self, 0)
16402    }
16403
16404    #[doc = "Event on Falling/Event on Rising"]
16405    #[inline(always)]
16406    pub fn eofr(
16407        self,
16408    ) -> crate::common::RegisterField<
16409        12,
16410        0x3,
16411        1,
16412        0,
16413        p60pfs::Eofr,
16414        p60pfs::Eofr,
16415        P60Pfs_SPEC,
16416        crate::common::RW,
16417    > {
16418        crate::common::RegisterField::<
16419            12,
16420            0x3,
16421            1,
16422            0,
16423            p60pfs::Eofr,
16424            p60pfs::Eofr,
16425            P60Pfs_SPEC,
16426            crate::common::RW,
16427        >::from_register(self, 0)
16428    }
16429
16430    #[doc = "IRQ Input Enable"]
16431    #[inline(always)]
16432    pub fn isel(
16433        self,
16434    ) -> crate::common::RegisterField<
16435        14,
16436        0x1,
16437        1,
16438        0,
16439        p60pfs::Isel,
16440        p60pfs::Isel,
16441        P60Pfs_SPEC,
16442        crate::common::RW,
16443    > {
16444        crate::common::RegisterField::<
16445            14,
16446            0x1,
16447            1,
16448            0,
16449            p60pfs::Isel,
16450            p60pfs::Isel,
16451            P60Pfs_SPEC,
16452            crate::common::RW,
16453        >::from_register(self, 0)
16454    }
16455
16456    #[doc = "Analog Input Enable"]
16457    #[inline(always)]
16458    pub fn asel(
16459        self,
16460    ) -> crate::common::RegisterField<
16461        15,
16462        0x1,
16463        1,
16464        0,
16465        p60pfs::Asel,
16466        p60pfs::Asel,
16467        P60Pfs_SPEC,
16468        crate::common::RW,
16469    > {
16470        crate::common::RegisterField::<
16471            15,
16472            0x1,
16473            1,
16474            0,
16475            p60pfs::Asel,
16476            p60pfs::Asel,
16477            P60Pfs_SPEC,
16478            crate::common::RW,
16479        >::from_register(self, 0)
16480    }
16481
16482    #[doc = "Port Mode Control"]
16483    #[inline(always)]
16484    pub fn pmr(
16485        self,
16486    ) -> crate::common::RegisterField<
16487        16,
16488        0x1,
16489        1,
16490        0,
16491        p60pfs::Pmr,
16492        p60pfs::Pmr,
16493        P60Pfs_SPEC,
16494        crate::common::RW,
16495    > {
16496        crate::common::RegisterField::<
16497            16,
16498            0x1,
16499            1,
16500            0,
16501            p60pfs::Pmr,
16502            p60pfs::Pmr,
16503            P60Pfs_SPEC,
16504            crate::common::RW,
16505        >::from_register(self, 0)
16506    }
16507
16508    #[doc = "Peripheral Select"]
16509    #[inline(always)]
16510    pub fn psel(
16511        self,
16512    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P60Pfs_SPEC, crate::common::RW> {
16513        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P60Pfs_SPEC,crate::common::RW>::from_register(self,0)
16514    }
16515}
16516impl ::core::default::Default for P60Pfs {
16517    #[inline(always)]
16518    fn default() -> P60Pfs {
16519        <crate::RegValueT<P60Pfs_SPEC> as RegisterValue<_>>::new(0)
16520    }
16521}
16522pub mod p60pfs {
16523
16524    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16525    pub struct Podr_SPEC;
16526    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
16527    impl Podr {
16528        #[doc = "Output low"]
16529        pub const _0: Self = Self::new(0);
16530
16531        #[doc = "Output high"]
16532        pub const _1: Self = Self::new(1);
16533    }
16534    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16535    pub struct Pidr_SPEC;
16536    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
16537    impl Pidr {
16538        #[doc = "Low level"]
16539        pub const _0: Self = Self::new(0);
16540
16541        #[doc = "High level"]
16542        pub const _1: Self = Self::new(1);
16543    }
16544    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16545    pub struct Pdr_SPEC;
16546    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
16547    impl Pdr {
16548        #[doc = "Input (functions as an input pin)"]
16549        pub const _0: Self = Self::new(0);
16550
16551        #[doc = "Output (functions as an output pin)"]
16552        pub const _1: Self = Self::new(1);
16553    }
16554    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16555    pub struct Pcr_SPEC;
16556    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
16557    impl Pcr {
16558        #[doc = "Disable input pull-up"]
16559        pub const _0: Self = Self::new(0);
16560
16561        #[doc = "Enable input pull-up"]
16562        pub const _1: Self = Self::new(1);
16563    }
16564    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16565    pub struct Ncodr_SPEC;
16566    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
16567    impl Ncodr {
16568        #[doc = "Output CMOS"]
16569        pub const _0: Self = Self::new(0);
16570
16571        #[doc = "Output NMOS open-drain"]
16572        pub const _1: Self = Self::new(1);
16573    }
16574    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16575    pub struct Dscr_SPEC;
16576    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
16577    impl Dscr {
16578        #[doc = "Low drive"]
16579        pub const _00: Self = Self::new(0);
16580
16581        #[doc = "Middle drive"]
16582        pub const _01: Self = Self::new(1);
16583
16584        #[doc = "Setting prohibited"]
16585        pub const _10: Self = Self::new(2);
16586
16587        #[doc = "High drive"]
16588        pub const _11: Self = Self::new(3);
16589    }
16590    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16591    pub struct Eofr_SPEC;
16592    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
16593    impl Eofr {
16594        #[doc = "Don\'t care"]
16595        pub const _00: Self = Self::new(0);
16596
16597        #[doc = "Detect rising edge"]
16598        pub const _01: Self = Self::new(1);
16599
16600        #[doc = "Detect falling edge"]
16601        pub const _10: Self = Self::new(2);
16602
16603        #[doc = "Detect both edges"]
16604        pub const _11: Self = Self::new(3);
16605    }
16606    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16607    pub struct Isel_SPEC;
16608    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
16609    impl Isel {
16610        #[doc = "Do not use as IRQn input pin"]
16611        pub const _0: Self = Self::new(0);
16612
16613        #[doc = "Use as IRQn input pin"]
16614        pub const _1: Self = Self::new(1);
16615    }
16616    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16617    pub struct Asel_SPEC;
16618    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
16619    impl Asel {
16620        #[doc = "Do not use as analog pin"]
16621        pub const _0: Self = Self::new(0);
16622
16623        #[doc = "Use as analog pin"]
16624        pub const _1: Self = Self::new(1);
16625    }
16626    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16627    pub struct Pmr_SPEC;
16628    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
16629    impl Pmr {
16630        #[doc = "Use as general I/O pin"]
16631        pub const _0: Self = Self::new(0);
16632
16633        #[doc = "Use as I/O port for peripheral functions"]
16634        pub const _1: Self = Self::new(1);
16635    }
16636}
16637#[doc(hidden)]
16638#[derive(Copy, Clone, Eq, PartialEq)]
16639pub struct P60PfsHa_SPEC;
16640impl crate::sealed::RegSpec for P60PfsHa_SPEC {
16641    type DataType = u16;
16642}
16643
16644#[doc = "Port 60%s Pin Function Select Register"]
16645pub type P60PfsHa = crate::RegValueT<P60PfsHa_SPEC>;
16646
16647impl P60PfsHa {
16648    #[doc = "Port Output Data"]
16649    #[inline(always)]
16650    pub fn podr(
16651        self,
16652    ) -> crate::common::RegisterField<
16653        0,
16654        0x1,
16655        1,
16656        0,
16657        p60pfs_ha::Podr,
16658        p60pfs_ha::Podr,
16659        P60PfsHa_SPEC,
16660        crate::common::RW,
16661    > {
16662        crate::common::RegisterField::<
16663            0,
16664            0x1,
16665            1,
16666            0,
16667            p60pfs_ha::Podr,
16668            p60pfs_ha::Podr,
16669            P60PfsHa_SPEC,
16670            crate::common::RW,
16671        >::from_register(self, 0)
16672    }
16673
16674    #[doc = "Port State"]
16675    #[inline(always)]
16676    pub fn pidr(
16677        self,
16678    ) -> crate::common::RegisterField<
16679        1,
16680        0x1,
16681        1,
16682        0,
16683        p60pfs_ha::Pidr,
16684        p60pfs_ha::Pidr,
16685        P60PfsHa_SPEC,
16686        crate::common::R,
16687    > {
16688        crate::common::RegisterField::<
16689            1,
16690            0x1,
16691            1,
16692            0,
16693            p60pfs_ha::Pidr,
16694            p60pfs_ha::Pidr,
16695            P60PfsHa_SPEC,
16696            crate::common::R,
16697        >::from_register(self, 0)
16698    }
16699
16700    #[doc = "Port Direction"]
16701    #[inline(always)]
16702    pub fn pdr(
16703        self,
16704    ) -> crate::common::RegisterField<
16705        2,
16706        0x1,
16707        1,
16708        0,
16709        p60pfs_ha::Pdr,
16710        p60pfs_ha::Pdr,
16711        P60PfsHa_SPEC,
16712        crate::common::RW,
16713    > {
16714        crate::common::RegisterField::<
16715            2,
16716            0x1,
16717            1,
16718            0,
16719            p60pfs_ha::Pdr,
16720            p60pfs_ha::Pdr,
16721            P60PfsHa_SPEC,
16722            crate::common::RW,
16723        >::from_register(self, 0)
16724    }
16725
16726    #[doc = "Pull-up Control"]
16727    #[inline(always)]
16728    pub fn pcr(
16729        self,
16730    ) -> crate::common::RegisterField<
16731        4,
16732        0x1,
16733        1,
16734        0,
16735        p60pfs_ha::Pcr,
16736        p60pfs_ha::Pcr,
16737        P60PfsHa_SPEC,
16738        crate::common::RW,
16739    > {
16740        crate::common::RegisterField::<
16741            4,
16742            0x1,
16743            1,
16744            0,
16745            p60pfs_ha::Pcr,
16746            p60pfs_ha::Pcr,
16747            P60PfsHa_SPEC,
16748            crate::common::RW,
16749        >::from_register(self, 0)
16750    }
16751
16752    #[doc = "N-Channel Open-Drain Control"]
16753    #[inline(always)]
16754    pub fn ncodr(
16755        self,
16756    ) -> crate::common::RegisterField<
16757        6,
16758        0x1,
16759        1,
16760        0,
16761        p60pfs_ha::Ncodr,
16762        p60pfs_ha::Ncodr,
16763        P60PfsHa_SPEC,
16764        crate::common::RW,
16765    > {
16766        crate::common::RegisterField::<
16767            6,
16768            0x1,
16769            1,
16770            0,
16771            p60pfs_ha::Ncodr,
16772            p60pfs_ha::Ncodr,
16773            P60PfsHa_SPEC,
16774            crate::common::RW,
16775        >::from_register(self, 0)
16776    }
16777
16778    #[doc = "Port Drive Capability"]
16779    #[inline(always)]
16780    pub fn dscr(
16781        self,
16782    ) -> crate::common::RegisterField<
16783        10,
16784        0x3,
16785        1,
16786        0,
16787        p60pfs_ha::Dscr,
16788        p60pfs_ha::Dscr,
16789        P60PfsHa_SPEC,
16790        crate::common::RW,
16791    > {
16792        crate::common::RegisterField::<
16793            10,
16794            0x3,
16795            1,
16796            0,
16797            p60pfs_ha::Dscr,
16798            p60pfs_ha::Dscr,
16799            P60PfsHa_SPEC,
16800            crate::common::RW,
16801        >::from_register(self, 0)
16802    }
16803
16804    #[doc = "Event on Falling/Event on Rising"]
16805    #[inline(always)]
16806    pub fn eofr(
16807        self,
16808    ) -> crate::common::RegisterField<
16809        12,
16810        0x3,
16811        1,
16812        0,
16813        p60pfs_ha::Eofr,
16814        p60pfs_ha::Eofr,
16815        P60PfsHa_SPEC,
16816        crate::common::RW,
16817    > {
16818        crate::common::RegisterField::<
16819            12,
16820            0x3,
16821            1,
16822            0,
16823            p60pfs_ha::Eofr,
16824            p60pfs_ha::Eofr,
16825            P60PfsHa_SPEC,
16826            crate::common::RW,
16827        >::from_register(self, 0)
16828    }
16829
16830    #[doc = "IRQ Input Enable"]
16831    #[inline(always)]
16832    pub fn isel(
16833        self,
16834    ) -> crate::common::RegisterField<
16835        14,
16836        0x1,
16837        1,
16838        0,
16839        p60pfs_ha::Isel,
16840        p60pfs_ha::Isel,
16841        P60PfsHa_SPEC,
16842        crate::common::RW,
16843    > {
16844        crate::common::RegisterField::<
16845            14,
16846            0x1,
16847            1,
16848            0,
16849            p60pfs_ha::Isel,
16850            p60pfs_ha::Isel,
16851            P60PfsHa_SPEC,
16852            crate::common::RW,
16853        >::from_register(self, 0)
16854    }
16855
16856    #[doc = "Analog Input Enable"]
16857    #[inline(always)]
16858    pub fn asel(
16859        self,
16860    ) -> crate::common::RegisterField<
16861        15,
16862        0x1,
16863        1,
16864        0,
16865        p60pfs_ha::Asel,
16866        p60pfs_ha::Asel,
16867        P60PfsHa_SPEC,
16868        crate::common::RW,
16869    > {
16870        crate::common::RegisterField::<
16871            15,
16872            0x1,
16873            1,
16874            0,
16875            p60pfs_ha::Asel,
16876            p60pfs_ha::Asel,
16877            P60PfsHa_SPEC,
16878            crate::common::RW,
16879        >::from_register(self, 0)
16880    }
16881}
16882impl ::core::default::Default for P60PfsHa {
16883    #[inline(always)]
16884    fn default() -> P60PfsHa {
16885        <crate::RegValueT<P60PfsHa_SPEC> as RegisterValue<_>>::new(0)
16886    }
16887}
16888pub mod p60pfs_ha {
16889
16890    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16891    pub struct Podr_SPEC;
16892    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
16893    impl Podr {
16894        #[doc = "Output low"]
16895        pub const _0: Self = Self::new(0);
16896
16897        #[doc = "Output high"]
16898        pub const _1: Self = Self::new(1);
16899    }
16900    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16901    pub struct Pidr_SPEC;
16902    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
16903    impl Pidr {
16904        #[doc = "Low level"]
16905        pub const _0: Self = Self::new(0);
16906
16907        #[doc = "High level"]
16908        pub const _1: Self = Self::new(1);
16909    }
16910    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16911    pub struct Pdr_SPEC;
16912    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
16913    impl Pdr {
16914        #[doc = "Input (functions as an input pin)"]
16915        pub const _0: Self = Self::new(0);
16916
16917        #[doc = "Output (functions as an output pin)"]
16918        pub const _1: Self = Self::new(1);
16919    }
16920    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16921    pub struct Pcr_SPEC;
16922    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
16923    impl Pcr {
16924        #[doc = "Disable input pull-up"]
16925        pub const _0: Self = Self::new(0);
16926
16927        #[doc = "Enable input pull-up"]
16928        pub const _1: Self = Self::new(1);
16929    }
16930    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16931    pub struct Ncodr_SPEC;
16932    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
16933    impl Ncodr {
16934        #[doc = "Output CMOS"]
16935        pub const _0: Self = Self::new(0);
16936
16937        #[doc = "Output NMOS open-drain"]
16938        pub const _1: Self = Self::new(1);
16939    }
16940    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16941    pub struct Dscr_SPEC;
16942    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
16943    impl Dscr {
16944        #[doc = "Low drive"]
16945        pub const _00: Self = Self::new(0);
16946
16947        #[doc = "Middle drive"]
16948        pub const _01: Self = Self::new(1);
16949
16950        #[doc = "Setting prohibited"]
16951        pub const _10: Self = Self::new(2);
16952
16953        #[doc = "High drive"]
16954        pub const _11: Self = Self::new(3);
16955    }
16956    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16957    pub struct Eofr_SPEC;
16958    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
16959    impl Eofr {
16960        #[doc = "Don\'t care"]
16961        pub const _00: Self = Self::new(0);
16962
16963        #[doc = "Detect rising edge"]
16964        pub const _01: Self = Self::new(1);
16965
16966        #[doc = "Detect falling edge"]
16967        pub const _10: Self = Self::new(2);
16968
16969        #[doc = "Detect both edges"]
16970        pub const _11: Self = Self::new(3);
16971    }
16972    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16973    pub struct Isel_SPEC;
16974    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
16975    impl Isel {
16976        #[doc = "Do not use as IRQn input pin"]
16977        pub const _0: Self = Self::new(0);
16978
16979        #[doc = "Use as IRQn input pin"]
16980        pub const _1: Self = Self::new(1);
16981    }
16982    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
16983    pub struct Asel_SPEC;
16984    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
16985    impl Asel {
16986        #[doc = "Do not use as analog pin"]
16987        pub const _0: Self = Self::new(0);
16988
16989        #[doc = "Use as analog pin"]
16990        pub const _1: Self = Self::new(1);
16991    }
16992}
16993#[doc(hidden)]
16994#[derive(Copy, Clone, Eq, PartialEq)]
16995pub struct P60PfsBy_SPEC;
16996impl crate::sealed::RegSpec for P60PfsBy_SPEC {
16997    type DataType = u8;
16998}
16999
17000#[doc = "Port 60%s Pin Function Select Register"]
17001pub type P60PfsBy = crate::RegValueT<P60PfsBy_SPEC>;
17002
17003impl P60PfsBy {
17004    #[doc = "Port Output Data"]
17005    #[inline(always)]
17006    pub fn podr(
17007        self,
17008    ) -> crate::common::RegisterField<
17009        0,
17010        0x1,
17011        1,
17012        0,
17013        p60pfs_by::Podr,
17014        p60pfs_by::Podr,
17015        P60PfsBy_SPEC,
17016        crate::common::RW,
17017    > {
17018        crate::common::RegisterField::<
17019            0,
17020            0x1,
17021            1,
17022            0,
17023            p60pfs_by::Podr,
17024            p60pfs_by::Podr,
17025            P60PfsBy_SPEC,
17026            crate::common::RW,
17027        >::from_register(self, 0)
17028    }
17029
17030    #[doc = "Port State"]
17031    #[inline(always)]
17032    pub fn pidr(
17033        self,
17034    ) -> crate::common::RegisterField<
17035        1,
17036        0x1,
17037        1,
17038        0,
17039        p60pfs_by::Pidr,
17040        p60pfs_by::Pidr,
17041        P60PfsBy_SPEC,
17042        crate::common::R,
17043    > {
17044        crate::common::RegisterField::<
17045            1,
17046            0x1,
17047            1,
17048            0,
17049            p60pfs_by::Pidr,
17050            p60pfs_by::Pidr,
17051            P60PfsBy_SPEC,
17052            crate::common::R,
17053        >::from_register(self, 0)
17054    }
17055
17056    #[doc = "Port Direction"]
17057    #[inline(always)]
17058    pub fn pdr(
17059        self,
17060    ) -> crate::common::RegisterField<
17061        2,
17062        0x1,
17063        1,
17064        0,
17065        p60pfs_by::Pdr,
17066        p60pfs_by::Pdr,
17067        P60PfsBy_SPEC,
17068        crate::common::RW,
17069    > {
17070        crate::common::RegisterField::<
17071            2,
17072            0x1,
17073            1,
17074            0,
17075            p60pfs_by::Pdr,
17076            p60pfs_by::Pdr,
17077            P60PfsBy_SPEC,
17078            crate::common::RW,
17079        >::from_register(self, 0)
17080    }
17081
17082    #[doc = "Pull-up Control"]
17083    #[inline(always)]
17084    pub fn pcr(
17085        self,
17086    ) -> crate::common::RegisterField<
17087        4,
17088        0x1,
17089        1,
17090        0,
17091        p60pfs_by::Pcr,
17092        p60pfs_by::Pcr,
17093        P60PfsBy_SPEC,
17094        crate::common::RW,
17095    > {
17096        crate::common::RegisterField::<
17097            4,
17098            0x1,
17099            1,
17100            0,
17101            p60pfs_by::Pcr,
17102            p60pfs_by::Pcr,
17103            P60PfsBy_SPEC,
17104            crate::common::RW,
17105        >::from_register(self, 0)
17106    }
17107
17108    #[doc = "N-Channel Open-Drain Control"]
17109    #[inline(always)]
17110    pub fn ncodr(
17111        self,
17112    ) -> crate::common::RegisterField<
17113        6,
17114        0x1,
17115        1,
17116        0,
17117        p60pfs_by::Ncodr,
17118        p60pfs_by::Ncodr,
17119        P60PfsBy_SPEC,
17120        crate::common::RW,
17121    > {
17122        crate::common::RegisterField::<
17123            6,
17124            0x1,
17125            1,
17126            0,
17127            p60pfs_by::Ncodr,
17128            p60pfs_by::Ncodr,
17129            P60PfsBy_SPEC,
17130            crate::common::RW,
17131        >::from_register(self, 0)
17132    }
17133}
17134impl ::core::default::Default for P60PfsBy {
17135    #[inline(always)]
17136    fn default() -> P60PfsBy {
17137        <crate::RegValueT<P60PfsBy_SPEC> as RegisterValue<_>>::new(0)
17138    }
17139}
17140pub mod p60pfs_by {
17141
17142    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17143    pub struct Podr_SPEC;
17144    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
17145    impl Podr {
17146        #[doc = "Output low"]
17147        pub const _0: Self = Self::new(0);
17148
17149        #[doc = "Output high"]
17150        pub const _1: Self = Self::new(1);
17151    }
17152    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17153    pub struct Pidr_SPEC;
17154    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
17155    impl Pidr {
17156        #[doc = "Low level"]
17157        pub const _0: Self = Self::new(0);
17158
17159        #[doc = "High level"]
17160        pub const _1: Self = Self::new(1);
17161    }
17162    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17163    pub struct Pdr_SPEC;
17164    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
17165    impl Pdr {
17166        #[doc = "Input (functions as an input pin)"]
17167        pub const _0: Self = Self::new(0);
17168
17169        #[doc = "Output (functions as an output pin)"]
17170        pub const _1: Self = Self::new(1);
17171    }
17172    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17173    pub struct Pcr_SPEC;
17174    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
17175    impl Pcr {
17176        #[doc = "Disable input pull-up"]
17177        pub const _0: Self = Self::new(0);
17178
17179        #[doc = "Enable input pull-up"]
17180        pub const _1: Self = Self::new(1);
17181    }
17182    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17183    pub struct Ncodr_SPEC;
17184    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
17185    impl Ncodr {
17186        #[doc = "Output CMOS"]
17187        pub const _0: Self = Self::new(0);
17188
17189        #[doc = "Output NMOS open-drain"]
17190        pub const _1: Self = Self::new(1);
17191    }
17192}
17193#[doc(hidden)]
17194#[derive(Copy, Clone, Eq, PartialEq)]
17195pub struct P610Pfs_SPEC;
17196impl crate::sealed::RegSpec for P610Pfs_SPEC {
17197    type DataType = u32;
17198}
17199
17200#[doc = "Port 610 Pin Function Select Register"]
17201pub type P610Pfs = crate::RegValueT<P610Pfs_SPEC>;
17202
17203impl P610Pfs {
17204    #[doc = "Port Output Data"]
17205    #[inline(always)]
17206    pub fn podr(
17207        self,
17208    ) -> crate::common::RegisterField<
17209        0,
17210        0x1,
17211        1,
17212        0,
17213        p610pfs::Podr,
17214        p610pfs::Podr,
17215        P610Pfs_SPEC,
17216        crate::common::RW,
17217    > {
17218        crate::common::RegisterField::<
17219            0,
17220            0x1,
17221            1,
17222            0,
17223            p610pfs::Podr,
17224            p610pfs::Podr,
17225            P610Pfs_SPEC,
17226            crate::common::RW,
17227        >::from_register(self, 0)
17228    }
17229
17230    #[doc = "Port State"]
17231    #[inline(always)]
17232    pub fn pidr(
17233        self,
17234    ) -> crate::common::RegisterField<
17235        1,
17236        0x1,
17237        1,
17238        0,
17239        p610pfs::Pidr,
17240        p610pfs::Pidr,
17241        P610Pfs_SPEC,
17242        crate::common::R,
17243    > {
17244        crate::common::RegisterField::<
17245            1,
17246            0x1,
17247            1,
17248            0,
17249            p610pfs::Pidr,
17250            p610pfs::Pidr,
17251            P610Pfs_SPEC,
17252            crate::common::R,
17253        >::from_register(self, 0)
17254    }
17255
17256    #[doc = "Port Direction"]
17257    #[inline(always)]
17258    pub fn pdr(
17259        self,
17260    ) -> crate::common::RegisterField<
17261        2,
17262        0x1,
17263        1,
17264        0,
17265        p610pfs::Pdr,
17266        p610pfs::Pdr,
17267        P610Pfs_SPEC,
17268        crate::common::RW,
17269    > {
17270        crate::common::RegisterField::<
17271            2,
17272            0x1,
17273            1,
17274            0,
17275            p610pfs::Pdr,
17276            p610pfs::Pdr,
17277            P610Pfs_SPEC,
17278            crate::common::RW,
17279        >::from_register(self, 0)
17280    }
17281
17282    #[doc = "Pull-up Control"]
17283    #[inline(always)]
17284    pub fn pcr(
17285        self,
17286    ) -> crate::common::RegisterField<
17287        4,
17288        0x1,
17289        1,
17290        0,
17291        p610pfs::Pcr,
17292        p610pfs::Pcr,
17293        P610Pfs_SPEC,
17294        crate::common::RW,
17295    > {
17296        crate::common::RegisterField::<
17297            4,
17298            0x1,
17299            1,
17300            0,
17301            p610pfs::Pcr,
17302            p610pfs::Pcr,
17303            P610Pfs_SPEC,
17304            crate::common::RW,
17305        >::from_register(self, 0)
17306    }
17307
17308    #[doc = "N-Channel Open-Drain Control"]
17309    #[inline(always)]
17310    pub fn ncodr(
17311        self,
17312    ) -> crate::common::RegisterField<
17313        6,
17314        0x1,
17315        1,
17316        0,
17317        p610pfs::Ncodr,
17318        p610pfs::Ncodr,
17319        P610Pfs_SPEC,
17320        crate::common::RW,
17321    > {
17322        crate::common::RegisterField::<
17323            6,
17324            0x1,
17325            1,
17326            0,
17327            p610pfs::Ncodr,
17328            p610pfs::Ncodr,
17329            P610Pfs_SPEC,
17330            crate::common::RW,
17331        >::from_register(self, 0)
17332    }
17333
17334    #[doc = "Port Drive Capability"]
17335    #[inline(always)]
17336    pub fn dscr(
17337        self,
17338    ) -> crate::common::RegisterField<
17339        10,
17340        0x3,
17341        1,
17342        0,
17343        p610pfs::Dscr,
17344        p610pfs::Dscr,
17345        P610Pfs_SPEC,
17346        crate::common::RW,
17347    > {
17348        crate::common::RegisterField::<
17349            10,
17350            0x3,
17351            1,
17352            0,
17353            p610pfs::Dscr,
17354            p610pfs::Dscr,
17355            P610Pfs_SPEC,
17356            crate::common::RW,
17357        >::from_register(self, 0)
17358    }
17359
17360    #[doc = "Event on Falling/Event on Rising"]
17361    #[inline(always)]
17362    pub fn eofr(
17363        self,
17364    ) -> crate::common::RegisterField<
17365        12,
17366        0x3,
17367        1,
17368        0,
17369        p610pfs::Eofr,
17370        p610pfs::Eofr,
17371        P610Pfs_SPEC,
17372        crate::common::RW,
17373    > {
17374        crate::common::RegisterField::<
17375            12,
17376            0x3,
17377            1,
17378            0,
17379            p610pfs::Eofr,
17380            p610pfs::Eofr,
17381            P610Pfs_SPEC,
17382            crate::common::RW,
17383        >::from_register(self, 0)
17384    }
17385
17386    #[doc = "IRQ Input Enable"]
17387    #[inline(always)]
17388    pub fn isel(
17389        self,
17390    ) -> crate::common::RegisterField<
17391        14,
17392        0x1,
17393        1,
17394        0,
17395        p610pfs::Isel,
17396        p610pfs::Isel,
17397        P610Pfs_SPEC,
17398        crate::common::RW,
17399    > {
17400        crate::common::RegisterField::<
17401            14,
17402            0x1,
17403            1,
17404            0,
17405            p610pfs::Isel,
17406            p610pfs::Isel,
17407            P610Pfs_SPEC,
17408            crate::common::RW,
17409        >::from_register(self, 0)
17410    }
17411
17412    #[doc = "Analog Input Enable"]
17413    #[inline(always)]
17414    pub fn asel(
17415        self,
17416    ) -> crate::common::RegisterField<
17417        15,
17418        0x1,
17419        1,
17420        0,
17421        p610pfs::Asel,
17422        p610pfs::Asel,
17423        P610Pfs_SPEC,
17424        crate::common::RW,
17425    > {
17426        crate::common::RegisterField::<
17427            15,
17428            0x1,
17429            1,
17430            0,
17431            p610pfs::Asel,
17432            p610pfs::Asel,
17433            P610Pfs_SPEC,
17434            crate::common::RW,
17435        >::from_register(self, 0)
17436    }
17437
17438    #[doc = "Port Mode Control"]
17439    #[inline(always)]
17440    pub fn pmr(
17441        self,
17442    ) -> crate::common::RegisterField<
17443        16,
17444        0x1,
17445        1,
17446        0,
17447        p610pfs::Pmr,
17448        p610pfs::Pmr,
17449        P610Pfs_SPEC,
17450        crate::common::RW,
17451    > {
17452        crate::common::RegisterField::<
17453            16,
17454            0x1,
17455            1,
17456            0,
17457            p610pfs::Pmr,
17458            p610pfs::Pmr,
17459            P610Pfs_SPEC,
17460            crate::common::RW,
17461        >::from_register(self, 0)
17462    }
17463
17464    #[doc = "Peripheral Select"]
17465    #[inline(always)]
17466    pub fn psel(
17467        self,
17468    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P610Pfs_SPEC, crate::common::RW> {
17469        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P610Pfs_SPEC,crate::common::RW>::from_register(self,0)
17470    }
17471}
17472impl ::core::default::Default for P610Pfs {
17473    #[inline(always)]
17474    fn default() -> P610Pfs {
17475        <crate::RegValueT<P610Pfs_SPEC> as RegisterValue<_>>::new(0)
17476    }
17477}
17478pub mod p610pfs {
17479
17480    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17481    pub struct Podr_SPEC;
17482    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
17483    impl Podr {
17484        #[doc = "Output low"]
17485        pub const _0: Self = Self::new(0);
17486
17487        #[doc = "Output high"]
17488        pub const _1: Self = Self::new(1);
17489    }
17490    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17491    pub struct Pidr_SPEC;
17492    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
17493    impl Pidr {
17494        #[doc = "Low level"]
17495        pub const _0: Self = Self::new(0);
17496
17497        #[doc = "High level"]
17498        pub const _1: Self = Self::new(1);
17499    }
17500    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17501    pub struct Pdr_SPEC;
17502    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
17503    impl Pdr {
17504        #[doc = "Input (functions as an input pin)"]
17505        pub const _0: Self = Self::new(0);
17506
17507        #[doc = "Output (functions as an output pin)"]
17508        pub const _1: Self = Self::new(1);
17509    }
17510    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17511    pub struct Pcr_SPEC;
17512    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
17513    impl Pcr {
17514        #[doc = "Disable input pull-up"]
17515        pub const _0: Self = Self::new(0);
17516
17517        #[doc = "Enable input pull-up"]
17518        pub const _1: Self = Self::new(1);
17519    }
17520    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17521    pub struct Ncodr_SPEC;
17522    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
17523    impl Ncodr {
17524        #[doc = "Output CMOS"]
17525        pub const _0: Self = Self::new(0);
17526
17527        #[doc = "Output NMOS open-drain"]
17528        pub const _1: Self = Self::new(1);
17529    }
17530    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17531    pub struct Dscr_SPEC;
17532    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
17533    impl Dscr {
17534        #[doc = "Low drive"]
17535        pub const _00: Self = Self::new(0);
17536
17537        #[doc = "Middle drive"]
17538        pub const _01: Self = Self::new(1);
17539
17540        #[doc = "Setting prohibited"]
17541        pub const _10: Self = Self::new(2);
17542
17543        #[doc = "High drive"]
17544        pub const _11: Self = Self::new(3);
17545    }
17546    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17547    pub struct Eofr_SPEC;
17548    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
17549    impl Eofr {
17550        #[doc = "Don\'t care"]
17551        pub const _00: Self = Self::new(0);
17552
17553        #[doc = "Detect rising edge"]
17554        pub const _01: Self = Self::new(1);
17555
17556        #[doc = "Detect falling edge"]
17557        pub const _10: Self = Self::new(2);
17558
17559        #[doc = "Detect both edges"]
17560        pub const _11: Self = Self::new(3);
17561    }
17562    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17563    pub struct Isel_SPEC;
17564    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
17565    impl Isel {
17566        #[doc = "Do not use as IRQn input pin"]
17567        pub const _0: Self = Self::new(0);
17568
17569        #[doc = "Use as IRQn input pin"]
17570        pub const _1: Self = Self::new(1);
17571    }
17572    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17573    pub struct Asel_SPEC;
17574    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
17575    impl Asel {
17576        #[doc = "Do not use as analog pin"]
17577        pub const _0: Self = Self::new(0);
17578
17579        #[doc = "Use as analog pin"]
17580        pub const _1: Self = Self::new(1);
17581    }
17582    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17583    pub struct Pmr_SPEC;
17584    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
17585    impl Pmr {
17586        #[doc = "Use as general I/O pin"]
17587        pub const _0: Self = Self::new(0);
17588
17589        #[doc = "Use as I/O port for peripheral functions"]
17590        pub const _1: Self = Self::new(1);
17591    }
17592}
17593#[doc(hidden)]
17594#[derive(Copy, Clone, Eq, PartialEq)]
17595pub struct P610PfsHa_SPEC;
17596impl crate::sealed::RegSpec for P610PfsHa_SPEC {
17597    type DataType = u16;
17598}
17599
17600#[doc = "Port 610 Pin Function Select Register"]
17601pub type P610PfsHa = crate::RegValueT<P610PfsHa_SPEC>;
17602
17603impl P610PfsHa {
17604    #[doc = "Port Output Data"]
17605    #[inline(always)]
17606    pub fn podr(
17607        self,
17608    ) -> crate::common::RegisterField<
17609        0,
17610        0x1,
17611        1,
17612        0,
17613        p610pfs_ha::Podr,
17614        p610pfs_ha::Podr,
17615        P610PfsHa_SPEC,
17616        crate::common::RW,
17617    > {
17618        crate::common::RegisterField::<
17619            0,
17620            0x1,
17621            1,
17622            0,
17623            p610pfs_ha::Podr,
17624            p610pfs_ha::Podr,
17625            P610PfsHa_SPEC,
17626            crate::common::RW,
17627        >::from_register(self, 0)
17628    }
17629
17630    #[doc = "Port State"]
17631    #[inline(always)]
17632    pub fn pidr(
17633        self,
17634    ) -> crate::common::RegisterField<
17635        1,
17636        0x1,
17637        1,
17638        0,
17639        p610pfs_ha::Pidr,
17640        p610pfs_ha::Pidr,
17641        P610PfsHa_SPEC,
17642        crate::common::R,
17643    > {
17644        crate::common::RegisterField::<
17645            1,
17646            0x1,
17647            1,
17648            0,
17649            p610pfs_ha::Pidr,
17650            p610pfs_ha::Pidr,
17651            P610PfsHa_SPEC,
17652            crate::common::R,
17653        >::from_register(self, 0)
17654    }
17655
17656    #[doc = "Port Direction"]
17657    #[inline(always)]
17658    pub fn pdr(
17659        self,
17660    ) -> crate::common::RegisterField<
17661        2,
17662        0x1,
17663        1,
17664        0,
17665        p610pfs_ha::Pdr,
17666        p610pfs_ha::Pdr,
17667        P610PfsHa_SPEC,
17668        crate::common::RW,
17669    > {
17670        crate::common::RegisterField::<
17671            2,
17672            0x1,
17673            1,
17674            0,
17675            p610pfs_ha::Pdr,
17676            p610pfs_ha::Pdr,
17677            P610PfsHa_SPEC,
17678            crate::common::RW,
17679        >::from_register(self, 0)
17680    }
17681
17682    #[doc = "Pull-up Control"]
17683    #[inline(always)]
17684    pub fn pcr(
17685        self,
17686    ) -> crate::common::RegisterField<
17687        4,
17688        0x1,
17689        1,
17690        0,
17691        p610pfs_ha::Pcr,
17692        p610pfs_ha::Pcr,
17693        P610PfsHa_SPEC,
17694        crate::common::RW,
17695    > {
17696        crate::common::RegisterField::<
17697            4,
17698            0x1,
17699            1,
17700            0,
17701            p610pfs_ha::Pcr,
17702            p610pfs_ha::Pcr,
17703            P610PfsHa_SPEC,
17704            crate::common::RW,
17705        >::from_register(self, 0)
17706    }
17707
17708    #[doc = "N-Channel Open-Drain Control"]
17709    #[inline(always)]
17710    pub fn ncodr(
17711        self,
17712    ) -> crate::common::RegisterField<
17713        6,
17714        0x1,
17715        1,
17716        0,
17717        p610pfs_ha::Ncodr,
17718        p610pfs_ha::Ncodr,
17719        P610PfsHa_SPEC,
17720        crate::common::RW,
17721    > {
17722        crate::common::RegisterField::<
17723            6,
17724            0x1,
17725            1,
17726            0,
17727            p610pfs_ha::Ncodr,
17728            p610pfs_ha::Ncodr,
17729            P610PfsHa_SPEC,
17730            crate::common::RW,
17731        >::from_register(self, 0)
17732    }
17733
17734    #[doc = "Port Drive Capability"]
17735    #[inline(always)]
17736    pub fn dscr(
17737        self,
17738    ) -> crate::common::RegisterField<
17739        10,
17740        0x3,
17741        1,
17742        0,
17743        p610pfs_ha::Dscr,
17744        p610pfs_ha::Dscr,
17745        P610PfsHa_SPEC,
17746        crate::common::RW,
17747    > {
17748        crate::common::RegisterField::<
17749            10,
17750            0x3,
17751            1,
17752            0,
17753            p610pfs_ha::Dscr,
17754            p610pfs_ha::Dscr,
17755            P610PfsHa_SPEC,
17756            crate::common::RW,
17757        >::from_register(self, 0)
17758    }
17759
17760    #[doc = "Event on Falling/Event on Rising"]
17761    #[inline(always)]
17762    pub fn eofr(
17763        self,
17764    ) -> crate::common::RegisterField<
17765        12,
17766        0x3,
17767        1,
17768        0,
17769        p610pfs_ha::Eofr,
17770        p610pfs_ha::Eofr,
17771        P610PfsHa_SPEC,
17772        crate::common::RW,
17773    > {
17774        crate::common::RegisterField::<
17775            12,
17776            0x3,
17777            1,
17778            0,
17779            p610pfs_ha::Eofr,
17780            p610pfs_ha::Eofr,
17781            P610PfsHa_SPEC,
17782            crate::common::RW,
17783        >::from_register(self, 0)
17784    }
17785
17786    #[doc = "IRQ Input Enable"]
17787    #[inline(always)]
17788    pub fn isel(
17789        self,
17790    ) -> crate::common::RegisterField<
17791        14,
17792        0x1,
17793        1,
17794        0,
17795        p610pfs_ha::Isel,
17796        p610pfs_ha::Isel,
17797        P610PfsHa_SPEC,
17798        crate::common::RW,
17799    > {
17800        crate::common::RegisterField::<
17801            14,
17802            0x1,
17803            1,
17804            0,
17805            p610pfs_ha::Isel,
17806            p610pfs_ha::Isel,
17807            P610PfsHa_SPEC,
17808            crate::common::RW,
17809        >::from_register(self, 0)
17810    }
17811
17812    #[doc = "Analog Input Enable"]
17813    #[inline(always)]
17814    pub fn asel(
17815        self,
17816    ) -> crate::common::RegisterField<
17817        15,
17818        0x1,
17819        1,
17820        0,
17821        p610pfs_ha::Asel,
17822        p610pfs_ha::Asel,
17823        P610PfsHa_SPEC,
17824        crate::common::RW,
17825    > {
17826        crate::common::RegisterField::<
17827            15,
17828            0x1,
17829            1,
17830            0,
17831            p610pfs_ha::Asel,
17832            p610pfs_ha::Asel,
17833            P610PfsHa_SPEC,
17834            crate::common::RW,
17835        >::from_register(self, 0)
17836    }
17837}
17838impl ::core::default::Default for P610PfsHa {
17839    #[inline(always)]
17840    fn default() -> P610PfsHa {
17841        <crate::RegValueT<P610PfsHa_SPEC> as RegisterValue<_>>::new(0)
17842    }
17843}
17844pub mod p610pfs_ha {
17845
17846    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17847    pub struct Podr_SPEC;
17848    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
17849    impl Podr {
17850        #[doc = "Output low"]
17851        pub const _0: Self = Self::new(0);
17852
17853        #[doc = "Output high"]
17854        pub const _1: Self = Self::new(1);
17855    }
17856    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17857    pub struct Pidr_SPEC;
17858    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
17859    impl Pidr {
17860        #[doc = "Low level"]
17861        pub const _0: Self = Self::new(0);
17862
17863        #[doc = "High level"]
17864        pub const _1: Self = Self::new(1);
17865    }
17866    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17867    pub struct Pdr_SPEC;
17868    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
17869    impl Pdr {
17870        #[doc = "Input (functions as an input pin)"]
17871        pub const _0: Self = Self::new(0);
17872
17873        #[doc = "Output (functions as an output pin)"]
17874        pub const _1: Self = Self::new(1);
17875    }
17876    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17877    pub struct Pcr_SPEC;
17878    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
17879    impl Pcr {
17880        #[doc = "Disable input pull-up"]
17881        pub const _0: Self = Self::new(0);
17882
17883        #[doc = "Enable input pull-up"]
17884        pub const _1: Self = Self::new(1);
17885    }
17886    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17887    pub struct Ncodr_SPEC;
17888    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
17889    impl Ncodr {
17890        #[doc = "Output CMOS"]
17891        pub const _0: Self = Self::new(0);
17892
17893        #[doc = "Output NMOS open-drain"]
17894        pub const _1: Self = Self::new(1);
17895    }
17896    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17897    pub struct Dscr_SPEC;
17898    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
17899    impl Dscr {
17900        #[doc = "Low drive"]
17901        pub const _00: Self = Self::new(0);
17902
17903        #[doc = "Middle drive"]
17904        pub const _01: Self = Self::new(1);
17905
17906        #[doc = "Setting prohibited"]
17907        pub const _10: Self = Self::new(2);
17908
17909        #[doc = "High drive"]
17910        pub const _11: Self = Self::new(3);
17911    }
17912    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17913    pub struct Eofr_SPEC;
17914    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
17915    impl Eofr {
17916        #[doc = "Don\'t care"]
17917        pub const _00: Self = Self::new(0);
17918
17919        #[doc = "Detect rising edge"]
17920        pub const _01: Self = Self::new(1);
17921
17922        #[doc = "Detect falling edge"]
17923        pub const _10: Self = Self::new(2);
17924
17925        #[doc = "Detect both edges"]
17926        pub const _11: Self = Self::new(3);
17927    }
17928    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17929    pub struct Isel_SPEC;
17930    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
17931    impl Isel {
17932        #[doc = "Do not use as IRQn input pin"]
17933        pub const _0: Self = Self::new(0);
17934
17935        #[doc = "Use as IRQn input pin"]
17936        pub const _1: Self = Self::new(1);
17937    }
17938    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
17939    pub struct Asel_SPEC;
17940    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
17941    impl Asel {
17942        #[doc = "Do not use as analog pin"]
17943        pub const _0: Self = Self::new(0);
17944
17945        #[doc = "Use as analog pin"]
17946        pub const _1: Self = Self::new(1);
17947    }
17948}
17949#[doc(hidden)]
17950#[derive(Copy, Clone, Eq, PartialEq)]
17951pub struct P610PfsBy_SPEC;
17952impl crate::sealed::RegSpec for P610PfsBy_SPEC {
17953    type DataType = u8;
17954}
17955
17956#[doc = "Port 610 Pin Function Select Register"]
17957pub type P610PfsBy = crate::RegValueT<P610PfsBy_SPEC>;
17958
17959impl P610PfsBy {
17960    #[doc = "Port Output Data"]
17961    #[inline(always)]
17962    pub fn podr(
17963        self,
17964    ) -> crate::common::RegisterField<
17965        0,
17966        0x1,
17967        1,
17968        0,
17969        p610pfs_by::Podr,
17970        p610pfs_by::Podr,
17971        P610PfsBy_SPEC,
17972        crate::common::RW,
17973    > {
17974        crate::common::RegisterField::<
17975            0,
17976            0x1,
17977            1,
17978            0,
17979            p610pfs_by::Podr,
17980            p610pfs_by::Podr,
17981            P610PfsBy_SPEC,
17982            crate::common::RW,
17983        >::from_register(self, 0)
17984    }
17985
17986    #[doc = "Port State"]
17987    #[inline(always)]
17988    pub fn pidr(
17989        self,
17990    ) -> crate::common::RegisterField<
17991        1,
17992        0x1,
17993        1,
17994        0,
17995        p610pfs_by::Pidr,
17996        p610pfs_by::Pidr,
17997        P610PfsBy_SPEC,
17998        crate::common::R,
17999    > {
18000        crate::common::RegisterField::<
18001            1,
18002            0x1,
18003            1,
18004            0,
18005            p610pfs_by::Pidr,
18006            p610pfs_by::Pidr,
18007            P610PfsBy_SPEC,
18008            crate::common::R,
18009        >::from_register(self, 0)
18010    }
18011
18012    #[doc = "Port Direction"]
18013    #[inline(always)]
18014    pub fn pdr(
18015        self,
18016    ) -> crate::common::RegisterField<
18017        2,
18018        0x1,
18019        1,
18020        0,
18021        p610pfs_by::Pdr,
18022        p610pfs_by::Pdr,
18023        P610PfsBy_SPEC,
18024        crate::common::RW,
18025    > {
18026        crate::common::RegisterField::<
18027            2,
18028            0x1,
18029            1,
18030            0,
18031            p610pfs_by::Pdr,
18032            p610pfs_by::Pdr,
18033            P610PfsBy_SPEC,
18034            crate::common::RW,
18035        >::from_register(self, 0)
18036    }
18037
18038    #[doc = "Pull-up Control"]
18039    #[inline(always)]
18040    pub fn pcr(
18041        self,
18042    ) -> crate::common::RegisterField<
18043        4,
18044        0x1,
18045        1,
18046        0,
18047        p610pfs_by::Pcr,
18048        p610pfs_by::Pcr,
18049        P610PfsBy_SPEC,
18050        crate::common::RW,
18051    > {
18052        crate::common::RegisterField::<
18053            4,
18054            0x1,
18055            1,
18056            0,
18057            p610pfs_by::Pcr,
18058            p610pfs_by::Pcr,
18059            P610PfsBy_SPEC,
18060            crate::common::RW,
18061        >::from_register(self, 0)
18062    }
18063
18064    #[doc = "N-Channel Open-Drain Control"]
18065    #[inline(always)]
18066    pub fn ncodr(
18067        self,
18068    ) -> crate::common::RegisterField<
18069        6,
18070        0x1,
18071        1,
18072        0,
18073        p610pfs_by::Ncodr,
18074        p610pfs_by::Ncodr,
18075        P610PfsBy_SPEC,
18076        crate::common::RW,
18077    > {
18078        crate::common::RegisterField::<
18079            6,
18080            0x1,
18081            1,
18082            0,
18083            p610pfs_by::Ncodr,
18084            p610pfs_by::Ncodr,
18085            P610PfsBy_SPEC,
18086            crate::common::RW,
18087        >::from_register(self, 0)
18088    }
18089}
18090impl ::core::default::Default for P610PfsBy {
18091    #[inline(always)]
18092    fn default() -> P610PfsBy {
18093        <crate::RegValueT<P610PfsBy_SPEC> as RegisterValue<_>>::new(0)
18094    }
18095}
18096pub mod p610pfs_by {
18097
18098    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18099    pub struct Podr_SPEC;
18100    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
18101    impl Podr {
18102        #[doc = "Output low"]
18103        pub const _0: Self = Self::new(0);
18104
18105        #[doc = "Output high"]
18106        pub const _1: Self = Self::new(1);
18107    }
18108    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18109    pub struct Pidr_SPEC;
18110    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
18111    impl Pidr {
18112        #[doc = "Low level"]
18113        pub const _0: Self = Self::new(0);
18114
18115        #[doc = "High level"]
18116        pub const _1: Self = Self::new(1);
18117    }
18118    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18119    pub struct Pdr_SPEC;
18120    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
18121    impl Pdr {
18122        #[doc = "Input (functions as an input pin)"]
18123        pub const _0: Self = Self::new(0);
18124
18125        #[doc = "Output (functions as an output pin)"]
18126        pub const _1: Self = Self::new(1);
18127    }
18128    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18129    pub struct Pcr_SPEC;
18130    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
18131    impl Pcr {
18132        #[doc = "Disable input pull-up"]
18133        pub const _0: Self = Self::new(0);
18134
18135        #[doc = "Enable input pull-up"]
18136        pub const _1: Self = Self::new(1);
18137    }
18138    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18139    pub struct Ncodr_SPEC;
18140    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
18141    impl Ncodr {
18142        #[doc = "Output CMOS"]
18143        pub const _0: Self = Self::new(0);
18144
18145        #[doc = "Output NMOS open-drain"]
18146        pub const _1: Self = Self::new(1);
18147    }
18148}
18149#[doc(hidden)]
18150#[derive(Copy, Clone, Eq, PartialEq)]
18151pub struct P708Pfs_SPEC;
18152impl crate::sealed::RegSpec for P708Pfs_SPEC {
18153    type DataType = u32;
18154}
18155
18156#[doc = "Port 708 Pin Function Select Register"]
18157pub type P708Pfs = crate::RegValueT<P708Pfs_SPEC>;
18158
18159impl P708Pfs {
18160    #[doc = "Port Output Data"]
18161    #[inline(always)]
18162    pub fn podr(
18163        self,
18164    ) -> crate::common::RegisterField<
18165        0,
18166        0x1,
18167        1,
18168        0,
18169        p708pfs::Podr,
18170        p708pfs::Podr,
18171        P708Pfs_SPEC,
18172        crate::common::RW,
18173    > {
18174        crate::common::RegisterField::<
18175            0,
18176            0x1,
18177            1,
18178            0,
18179            p708pfs::Podr,
18180            p708pfs::Podr,
18181            P708Pfs_SPEC,
18182            crate::common::RW,
18183        >::from_register(self, 0)
18184    }
18185
18186    #[doc = "Port State"]
18187    #[inline(always)]
18188    pub fn pidr(
18189        self,
18190    ) -> crate::common::RegisterField<
18191        1,
18192        0x1,
18193        1,
18194        0,
18195        p708pfs::Pidr,
18196        p708pfs::Pidr,
18197        P708Pfs_SPEC,
18198        crate::common::R,
18199    > {
18200        crate::common::RegisterField::<
18201            1,
18202            0x1,
18203            1,
18204            0,
18205            p708pfs::Pidr,
18206            p708pfs::Pidr,
18207            P708Pfs_SPEC,
18208            crate::common::R,
18209        >::from_register(self, 0)
18210    }
18211
18212    #[doc = "Port Direction"]
18213    #[inline(always)]
18214    pub fn pdr(
18215        self,
18216    ) -> crate::common::RegisterField<
18217        2,
18218        0x1,
18219        1,
18220        0,
18221        p708pfs::Pdr,
18222        p708pfs::Pdr,
18223        P708Pfs_SPEC,
18224        crate::common::RW,
18225    > {
18226        crate::common::RegisterField::<
18227            2,
18228            0x1,
18229            1,
18230            0,
18231            p708pfs::Pdr,
18232            p708pfs::Pdr,
18233            P708Pfs_SPEC,
18234            crate::common::RW,
18235        >::from_register(self, 0)
18236    }
18237
18238    #[doc = "Pull-up Control"]
18239    #[inline(always)]
18240    pub fn pcr(
18241        self,
18242    ) -> crate::common::RegisterField<
18243        4,
18244        0x1,
18245        1,
18246        0,
18247        p708pfs::Pcr,
18248        p708pfs::Pcr,
18249        P708Pfs_SPEC,
18250        crate::common::RW,
18251    > {
18252        crate::common::RegisterField::<
18253            4,
18254            0x1,
18255            1,
18256            0,
18257            p708pfs::Pcr,
18258            p708pfs::Pcr,
18259            P708Pfs_SPEC,
18260            crate::common::RW,
18261        >::from_register(self, 0)
18262    }
18263
18264    #[doc = "N-Channel Open-Drain Control"]
18265    #[inline(always)]
18266    pub fn ncodr(
18267        self,
18268    ) -> crate::common::RegisterField<
18269        6,
18270        0x1,
18271        1,
18272        0,
18273        p708pfs::Ncodr,
18274        p708pfs::Ncodr,
18275        P708Pfs_SPEC,
18276        crate::common::RW,
18277    > {
18278        crate::common::RegisterField::<
18279            6,
18280            0x1,
18281            1,
18282            0,
18283            p708pfs::Ncodr,
18284            p708pfs::Ncodr,
18285            P708Pfs_SPEC,
18286            crate::common::RW,
18287        >::from_register(self, 0)
18288    }
18289
18290    #[doc = "Port Drive Capability"]
18291    #[inline(always)]
18292    pub fn dscr(
18293        self,
18294    ) -> crate::common::RegisterField<
18295        10,
18296        0x3,
18297        1,
18298        0,
18299        p708pfs::Dscr,
18300        p708pfs::Dscr,
18301        P708Pfs_SPEC,
18302        crate::common::RW,
18303    > {
18304        crate::common::RegisterField::<
18305            10,
18306            0x3,
18307            1,
18308            0,
18309            p708pfs::Dscr,
18310            p708pfs::Dscr,
18311            P708Pfs_SPEC,
18312            crate::common::RW,
18313        >::from_register(self, 0)
18314    }
18315
18316    #[doc = "Event on Falling/Event on Rising"]
18317    #[inline(always)]
18318    pub fn eofr(
18319        self,
18320    ) -> crate::common::RegisterField<
18321        12,
18322        0x3,
18323        1,
18324        0,
18325        p708pfs::Eofr,
18326        p708pfs::Eofr,
18327        P708Pfs_SPEC,
18328        crate::common::RW,
18329    > {
18330        crate::common::RegisterField::<
18331            12,
18332            0x3,
18333            1,
18334            0,
18335            p708pfs::Eofr,
18336            p708pfs::Eofr,
18337            P708Pfs_SPEC,
18338            crate::common::RW,
18339        >::from_register(self, 0)
18340    }
18341
18342    #[doc = "IRQ Input Enable"]
18343    #[inline(always)]
18344    pub fn isel(
18345        self,
18346    ) -> crate::common::RegisterField<
18347        14,
18348        0x1,
18349        1,
18350        0,
18351        p708pfs::Isel,
18352        p708pfs::Isel,
18353        P708Pfs_SPEC,
18354        crate::common::RW,
18355    > {
18356        crate::common::RegisterField::<
18357            14,
18358            0x1,
18359            1,
18360            0,
18361            p708pfs::Isel,
18362            p708pfs::Isel,
18363            P708Pfs_SPEC,
18364            crate::common::RW,
18365        >::from_register(self, 0)
18366    }
18367
18368    #[doc = "Analog Input Enable"]
18369    #[inline(always)]
18370    pub fn asel(
18371        self,
18372    ) -> crate::common::RegisterField<
18373        15,
18374        0x1,
18375        1,
18376        0,
18377        p708pfs::Asel,
18378        p708pfs::Asel,
18379        P708Pfs_SPEC,
18380        crate::common::RW,
18381    > {
18382        crate::common::RegisterField::<
18383            15,
18384            0x1,
18385            1,
18386            0,
18387            p708pfs::Asel,
18388            p708pfs::Asel,
18389            P708Pfs_SPEC,
18390            crate::common::RW,
18391        >::from_register(self, 0)
18392    }
18393
18394    #[doc = "Port Mode Control"]
18395    #[inline(always)]
18396    pub fn pmr(
18397        self,
18398    ) -> crate::common::RegisterField<
18399        16,
18400        0x1,
18401        1,
18402        0,
18403        p708pfs::Pmr,
18404        p708pfs::Pmr,
18405        P708Pfs_SPEC,
18406        crate::common::RW,
18407    > {
18408        crate::common::RegisterField::<
18409            16,
18410            0x1,
18411            1,
18412            0,
18413            p708pfs::Pmr,
18414            p708pfs::Pmr,
18415            P708Pfs_SPEC,
18416            crate::common::RW,
18417        >::from_register(self, 0)
18418    }
18419
18420    #[doc = "Peripheral Select"]
18421    #[inline(always)]
18422    pub fn psel(
18423        self,
18424    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P708Pfs_SPEC, crate::common::RW> {
18425        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P708Pfs_SPEC,crate::common::RW>::from_register(self,0)
18426    }
18427}
18428impl ::core::default::Default for P708Pfs {
18429    #[inline(always)]
18430    fn default() -> P708Pfs {
18431        <crate::RegValueT<P708Pfs_SPEC> as RegisterValue<_>>::new(0)
18432    }
18433}
18434pub mod p708pfs {
18435
18436    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18437    pub struct Podr_SPEC;
18438    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
18439    impl Podr {
18440        #[doc = "Output low"]
18441        pub const _0: Self = Self::new(0);
18442
18443        #[doc = "Output high"]
18444        pub const _1: Self = Self::new(1);
18445    }
18446    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18447    pub struct Pidr_SPEC;
18448    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
18449    impl Pidr {
18450        #[doc = "Low level"]
18451        pub const _0: Self = Self::new(0);
18452
18453        #[doc = "High level"]
18454        pub const _1: Self = Self::new(1);
18455    }
18456    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18457    pub struct Pdr_SPEC;
18458    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
18459    impl Pdr {
18460        #[doc = "Input (functions as an input pin)"]
18461        pub const _0: Self = Self::new(0);
18462
18463        #[doc = "Output (functions as an output pin)"]
18464        pub const _1: Self = Self::new(1);
18465    }
18466    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18467    pub struct Pcr_SPEC;
18468    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
18469    impl Pcr {
18470        #[doc = "Disable input pull-up"]
18471        pub const _0: Self = Self::new(0);
18472
18473        #[doc = "Enable input pull-up"]
18474        pub const _1: Self = Self::new(1);
18475    }
18476    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18477    pub struct Ncodr_SPEC;
18478    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
18479    impl Ncodr {
18480        #[doc = "Output CMOS"]
18481        pub const _0: Self = Self::new(0);
18482
18483        #[doc = "Output NMOS open-drain"]
18484        pub const _1: Self = Self::new(1);
18485    }
18486    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18487    pub struct Dscr_SPEC;
18488    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
18489    impl Dscr {
18490        #[doc = "Low drive"]
18491        pub const _00: Self = Self::new(0);
18492
18493        #[doc = "Middle drive"]
18494        pub const _01: Self = Self::new(1);
18495
18496        #[doc = "High-speed high-drive"]
18497        pub const _10: Self = Self::new(2);
18498
18499        #[doc = "High drive"]
18500        pub const _11: Self = Self::new(3);
18501    }
18502    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18503    pub struct Eofr_SPEC;
18504    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
18505    impl Eofr {
18506        #[doc = "Don\'t care"]
18507        pub const _00: Self = Self::new(0);
18508
18509        #[doc = "Detect rising edge"]
18510        pub const _01: Self = Self::new(1);
18511
18512        #[doc = "Detect falling edge"]
18513        pub const _10: Self = Self::new(2);
18514
18515        #[doc = "Detect both edges"]
18516        pub const _11: Self = Self::new(3);
18517    }
18518    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18519    pub struct Isel_SPEC;
18520    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
18521    impl Isel {
18522        #[doc = "Do not use as IRQn input pin"]
18523        pub const _0: Self = Self::new(0);
18524
18525        #[doc = "Use as IRQn input pin"]
18526        pub const _1: Self = Self::new(1);
18527    }
18528    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18529    pub struct Asel_SPEC;
18530    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
18531    impl Asel {
18532        #[doc = "Do not use as analog pin"]
18533        pub const _0: Self = Self::new(0);
18534
18535        #[doc = "Use as analog pin"]
18536        pub const _1: Self = Self::new(1);
18537    }
18538    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18539    pub struct Pmr_SPEC;
18540    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
18541    impl Pmr {
18542        #[doc = "Use as general I/O pin"]
18543        pub const _0: Self = Self::new(0);
18544
18545        #[doc = "Use as I/O port for peripheral functions"]
18546        pub const _1: Self = Self::new(1);
18547    }
18548}
18549#[doc(hidden)]
18550#[derive(Copy, Clone, Eq, PartialEq)]
18551pub struct P708PfsHa_SPEC;
18552impl crate::sealed::RegSpec for P708PfsHa_SPEC {
18553    type DataType = u16;
18554}
18555
18556#[doc = "Port 708 Pin Function Select Register"]
18557pub type P708PfsHa = crate::RegValueT<P708PfsHa_SPEC>;
18558
18559impl P708PfsHa {
18560    #[doc = "Port Output Data"]
18561    #[inline(always)]
18562    pub fn podr(
18563        self,
18564    ) -> crate::common::RegisterField<
18565        0,
18566        0x1,
18567        1,
18568        0,
18569        p708pfs_ha::Podr,
18570        p708pfs_ha::Podr,
18571        P708PfsHa_SPEC,
18572        crate::common::RW,
18573    > {
18574        crate::common::RegisterField::<
18575            0,
18576            0x1,
18577            1,
18578            0,
18579            p708pfs_ha::Podr,
18580            p708pfs_ha::Podr,
18581            P708PfsHa_SPEC,
18582            crate::common::RW,
18583        >::from_register(self, 0)
18584    }
18585
18586    #[doc = "Port State"]
18587    #[inline(always)]
18588    pub fn pidr(
18589        self,
18590    ) -> crate::common::RegisterField<
18591        1,
18592        0x1,
18593        1,
18594        0,
18595        p708pfs_ha::Pidr,
18596        p708pfs_ha::Pidr,
18597        P708PfsHa_SPEC,
18598        crate::common::R,
18599    > {
18600        crate::common::RegisterField::<
18601            1,
18602            0x1,
18603            1,
18604            0,
18605            p708pfs_ha::Pidr,
18606            p708pfs_ha::Pidr,
18607            P708PfsHa_SPEC,
18608            crate::common::R,
18609        >::from_register(self, 0)
18610    }
18611
18612    #[doc = "Port Direction"]
18613    #[inline(always)]
18614    pub fn pdr(
18615        self,
18616    ) -> crate::common::RegisterField<
18617        2,
18618        0x1,
18619        1,
18620        0,
18621        p708pfs_ha::Pdr,
18622        p708pfs_ha::Pdr,
18623        P708PfsHa_SPEC,
18624        crate::common::RW,
18625    > {
18626        crate::common::RegisterField::<
18627            2,
18628            0x1,
18629            1,
18630            0,
18631            p708pfs_ha::Pdr,
18632            p708pfs_ha::Pdr,
18633            P708PfsHa_SPEC,
18634            crate::common::RW,
18635        >::from_register(self, 0)
18636    }
18637
18638    #[doc = "Pull-up Control"]
18639    #[inline(always)]
18640    pub fn pcr(
18641        self,
18642    ) -> crate::common::RegisterField<
18643        4,
18644        0x1,
18645        1,
18646        0,
18647        p708pfs_ha::Pcr,
18648        p708pfs_ha::Pcr,
18649        P708PfsHa_SPEC,
18650        crate::common::RW,
18651    > {
18652        crate::common::RegisterField::<
18653            4,
18654            0x1,
18655            1,
18656            0,
18657            p708pfs_ha::Pcr,
18658            p708pfs_ha::Pcr,
18659            P708PfsHa_SPEC,
18660            crate::common::RW,
18661        >::from_register(self, 0)
18662    }
18663
18664    #[doc = "N-Channel Open-Drain Control"]
18665    #[inline(always)]
18666    pub fn ncodr(
18667        self,
18668    ) -> crate::common::RegisterField<
18669        6,
18670        0x1,
18671        1,
18672        0,
18673        p708pfs_ha::Ncodr,
18674        p708pfs_ha::Ncodr,
18675        P708PfsHa_SPEC,
18676        crate::common::RW,
18677    > {
18678        crate::common::RegisterField::<
18679            6,
18680            0x1,
18681            1,
18682            0,
18683            p708pfs_ha::Ncodr,
18684            p708pfs_ha::Ncodr,
18685            P708PfsHa_SPEC,
18686            crate::common::RW,
18687        >::from_register(self, 0)
18688    }
18689
18690    #[doc = "Port Drive Capability"]
18691    #[inline(always)]
18692    pub fn dscr(
18693        self,
18694    ) -> crate::common::RegisterField<
18695        10,
18696        0x3,
18697        1,
18698        0,
18699        p708pfs_ha::Dscr,
18700        p708pfs_ha::Dscr,
18701        P708PfsHa_SPEC,
18702        crate::common::RW,
18703    > {
18704        crate::common::RegisterField::<
18705            10,
18706            0x3,
18707            1,
18708            0,
18709            p708pfs_ha::Dscr,
18710            p708pfs_ha::Dscr,
18711            P708PfsHa_SPEC,
18712            crate::common::RW,
18713        >::from_register(self, 0)
18714    }
18715
18716    #[doc = "Event on Falling/Event on Rising"]
18717    #[inline(always)]
18718    pub fn eofr(
18719        self,
18720    ) -> crate::common::RegisterField<
18721        12,
18722        0x3,
18723        1,
18724        0,
18725        p708pfs_ha::Eofr,
18726        p708pfs_ha::Eofr,
18727        P708PfsHa_SPEC,
18728        crate::common::RW,
18729    > {
18730        crate::common::RegisterField::<
18731            12,
18732            0x3,
18733            1,
18734            0,
18735            p708pfs_ha::Eofr,
18736            p708pfs_ha::Eofr,
18737            P708PfsHa_SPEC,
18738            crate::common::RW,
18739        >::from_register(self, 0)
18740    }
18741
18742    #[doc = "IRQ Input Enable"]
18743    #[inline(always)]
18744    pub fn isel(
18745        self,
18746    ) -> crate::common::RegisterField<
18747        14,
18748        0x1,
18749        1,
18750        0,
18751        p708pfs_ha::Isel,
18752        p708pfs_ha::Isel,
18753        P708PfsHa_SPEC,
18754        crate::common::RW,
18755    > {
18756        crate::common::RegisterField::<
18757            14,
18758            0x1,
18759            1,
18760            0,
18761            p708pfs_ha::Isel,
18762            p708pfs_ha::Isel,
18763            P708PfsHa_SPEC,
18764            crate::common::RW,
18765        >::from_register(self, 0)
18766    }
18767
18768    #[doc = "Analog Input Enable"]
18769    #[inline(always)]
18770    pub fn asel(
18771        self,
18772    ) -> crate::common::RegisterField<
18773        15,
18774        0x1,
18775        1,
18776        0,
18777        p708pfs_ha::Asel,
18778        p708pfs_ha::Asel,
18779        P708PfsHa_SPEC,
18780        crate::common::RW,
18781    > {
18782        crate::common::RegisterField::<
18783            15,
18784            0x1,
18785            1,
18786            0,
18787            p708pfs_ha::Asel,
18788            p708pfs_ha::Asel,
18789            P708PfsHa_SPEC,
18790            crate::common::RW,
18791        >::from_register(self, 0)
18792    }
18793}
18794impl ::core::default::Default for P708PfsHa {
18795    #[inline(always)]
18796    fn default() -> P708PfsHa {
18797        <crate::RegValueT<P708PfsHa_SPEC> as RegisterValue<_>>::new(0)
18798    }
18799}
18800pub mod p708pfs_ha {
18801
18802    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18803    pub struct Podr_SPEC;
18804    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
18805    impl Podr {
18806        #[doc = "Output low"]
18807        pub const _0: Self = Self::new(0);
18808
18809        #[doc = "Output high"]
18810        pub const _1: Self = Self::new(1);
18811    }
18812    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18813    pub struct Pidr_SPEC;
18814    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
18815    impl Pidr {
18816        #[doc = "Low level"]
18817        pub const _0: Self = Self::new(0);
18818
18819        #[doc = "High level"]
18820        pub const _1: Self = Self::new(1);
18821    }
18822    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18823    pub struct Pdr_SPEC;
18824    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
18825    impl Pdr {
18826        #[doc = "Input (functions as an input pin)"]
18827        pub const _0: Self = Self::new(0);
18828
18829        #[doc = "Output (functions as an output pin)"]
18830        pub const _1: Self = Self::new(1);
18831    }
18832    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18833    pub struct Pcr_SPEC;
18834    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
18835    impl Pcr {
18836        #[doc = "Disable input pull-up"]
18837        pub const _0: Self = Self::new(0);
18838
18839        #[doc = "Enable input pull-up"]
18840        pub const _1: Self = Self::new(1);
18841    }
18842    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18843    pub struct Ncodr_SPEC;
18844    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
18845    impl Ncodr {
18846        #[doc = "Output CMOS"]
18847        pub const _0: Self = Self::new(0);
18848
18849        #[doc = "Output NMOS open-drain"]
18850        pub const _1: Self = Self::new(1);
18851    }
18852    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18853    pub struct Dscr_SPEC;
18854    pub type Dscr = crate::EnumBitfieldStruct<u8, Dscr_SPEC>;
18855    impl Dscr {
18856        #[doc = "Low drive"]
18857        pub const _00: Self = Self::new(0);
18858
18859        #[doc = "Middle drive"]
18860        pub const _01: Self = Self::new(1);
18861
18862        #[doc = "High-speed high-drive"]
18863        pub const _10: Self = Self::new(2);
18864
18865        #[doc = "High drive"]
18866        pub const _11: Self = Self::new(3);
18867    }
18868    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18869    pub struct Eofr_SPEC;
18870    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
18871    impl Eofr {
18872        #[doc = "Don\'t care"]
18873        pub const _00: Self = Self::new(0);
18874
18875        #[doc = "Detect rising edge"]
18876        pub const _01: Self = Self::new(1);
18877
18878        #[doc = "Detect falling edge"]
18879        pub const _10: Self = Self::new(2);
18880
18881        #[doc = "Detect both edges"]
18882        pub const _11: Self = Self::new(3);
18883    }
18884    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18885    pub struct Isel_SPEC;
18886    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
18887    impl Isel {
18888        #[doc = "Do not use as IRQn input pin"]
18889        pub const _0: Self = Self::new(0);
18890
18891        #[doc = "Use as IRQn input pin"]
18892        pub const _1: Self = Self::new(1);
18893    }
18894    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
18895    pub struct Asel_SPEC;
18896    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
18897    impl Asel {
18898        #[doc = "Do not use as analog pin"]
18899        pub const _0: Self = Self::new(0);
18900
18901        #[doc = "Use as analog pin"]
18902        pub const _1: Self = Self::new(1);
18903    }
18904}
18905#[doc(hidden)]
18906#[derive(Copy, Clone, Eq, PartialEq)]
18907pub struct P708PfsBy_SPEC;
18908impl crate::sealed::RegSpec for P708PfsBy_SPEC {
18909    type DataType = u8;
18910}
18911
18912#[doc = "Port 708 Pin Function Select Register"]
18913pub type P708PfsBy = crate::RegValueT<P708PfsBy_SPEC>;
18914
18915impl P708PfsBy {
18916    #[doc = "Port Output Data"]
18917    #[inline(always)]
18918    pub fn podr(
18919        self,
18920    ) -> crate::common::RegisterField<
18921        0,
18922        0x1,
18923        1,
18924        0,
18925        p708pfs_by::Podr,
18926        p708pfs_by::Podr,
18927        P708PfsBy_SPEC,
18928        crate::common::RW,
18929    > {
18930        crate::common::RegisterField::<
18931            0,
18932            0x1,
18933            1,
18934            0,
18935            p708pfs_by::Podr,
18936            p708pfs_by::Podr,
18937            P708PfsBy_SPEC,
18938            crate::common::RW,
18939        >::from_register(self, 0)
18940    }
18941
18942    #[doc = "Port State"]
18943    #[inline(always)]
18944    pub fn pidr(
18945        self,
18946    ) -> crate::common::RegisterField<
18947        1,
18948        0x1,
18949        1,
18950        0,
18951        p708pfs_by::Pidr,
18952        p708pfs_by::Pidr,
18953        P708PfsBy_SPEC,
18954        crate::common::R,
18955    > {
18956        crate::common::RegisterField::<
18957            1,
18958            0x1,
18959            1,
18960            0,
18961            p708pfs_by::Pidr,
18962            p708pfs_by::Pidr,
18963            P708PfsBy_SPEC,
18964            crate::common::R,
18965        >::from_register(self, 0)
18966    }
18967
18968    #[doc = "Port Direction"]
18969    #[inline(always)]
18970    pub fn pdr(
18971        self,
18972    ) -> crate::common::RegisterField<
18973        2,
18974        0x1,
18975        1,
18976        0,
18977        p708pfs_by::Pdr,
18978        p708pfs_by::Pdr,
18979        P708PfsBy_SPEC,
18980        crate::common::RW,
18981    > {
18982        crate::common::RegisterField::<
18983            2,
18984            0x1,
18985            1,
18986            0,
18987            p708pfs_by::Pdr,
18988            p708pfs_by::Pdr,
18989            P708PfsBy_SPEC,
18990            crate::common::RW,
18991        >::from_register(self, 0)
18992    }
18993
18994    #[doc = "Pull-up Control"]
18995    #[inline(always)]
18996    pub fn pcr(
18997        self,
18998    ) -> crate::common::RegisterField<
18999        4,
19000        0x1,
19001        1,
19002        0,
19003        p708pfs_by::Pcr,
19004        p708pfs_by::Pcr,
19005        P708PfsBy_SPEC,
19006        crate::common::RW,
19007    > {
19008        crate::common::RegisterField::<
19009            4,
19010            0x1,
19011            1,
19012            0,
19013            p708pfs_by::Pcr,
19014            p708pfs_by::Pcr,
19015            P708PfsBy_SPEC,
19016            crate::common::RW,
19017        >::from_register(self, 0)
19018    }
19019
19020    #[doc = "N-Channel Open-Drain Control"]
19021    #[inline(always)]
19022    pub fn ncodr(
19023        self,
19024    ) -> crate::common::RegisterField<
19025        6,
19026        0x1,
19027        1,
19028        0,
19029        p708pfs_by::Ncodr,
19030        p708pfs_by::Ncodr,
19031        P708PfsBy_SPEC,
19032        crate::common::RW,
19033    > {
19034        crate::common::RegisterField::<
19035            6,
19036            0x1,
19037            1,
19038            0,
19039            p708pfs_by::Ncodr,
19040            p708pfs_by::Ncodr,
19041            P708PfsBy_SPEC,
19042            crate::common::RW,
19043        >::from_register(self, 0)
19044    }
19045}
19046impl ::core::default::Default for P708PfsBy {
19047    #[inline(always)]
19048    fn default() -> P708PfsBy {
19049        <crate::RegValueT<P708PfsBy_SPEC> as RegisterValue<_>>::new(0)
19050    }
19051}
19052pub mod p708pfs_by {
19053
19054    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19055    pub struct Podr_SPEC;
19056    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
19057    impl Podr {
19058        #[doc = "Output low"]
19059        pub const _0: Self = Self::new(0);
19060
19061        #[doc = "Output high"]
19062        pub const _1: Self = Self::new(1);
19063    }
19064    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19065    pub struct Pidr_SPEC;
19066    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
19067    impl Pidr {
19068        #[doc = "Low level"]
19069        pub const _0: Self = Self::new(0);
19070
19071        #[doc = "High level"]
19072        pub const _1: Self = Self::new(1);
19073    }
19074    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19075    pub struct Pdr_SPEC;
19076    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
19077    impl Pdr {
19078        #[doc = "Input (functions as an input pin)"]
19079        pub const _0: Self = Self::new(0);
19080
19081        #[doc = "Output (functions as an output pin)"]
19082        pub const _1: Self = Self::new(1);
19083    }
19084    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19085    pub struct Pcr_SPEC;
19086    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
19087    impl Pcr {
19088        #[doc = "Disable input pull-up"]
19089        pub const _0: Self = Self::new(0);
19090
19091        #[doc = "Enable input pull-up"]
19092        pub const _1: Self = Self::new(1);
19093    }
19094    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19095    pub struct Ncodr_SPEC;
19096    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
19097    impl Ncodr {
19098        #[doc = "Output CMOS"]
19099        pub const _0: Self = Self::new(0);
19100
19101        #[doc = "Output NMOS open-drain"]
19102        pub const _1: Self = Self::new(1);
19103    }
19104}
19105#[doc(hidden)]
19106#[derive(Copy, Clone, Eq, PartialEq)]
19107pub struct Pwpr_SPEC;
19108impl crate::sealed::RegSpec for Pwpr_SPEC {
19109    type DataType = u8;
19110}
19111
19112#[doc = "Write-Protect Register"]
19113pub type Pwpr = crate::RegValueT<Pwpr_SPEC>;
19114
19115impl Pwpr {
19116    #[doc = "PmnPFS Register Write Enable"]
19117    #[inline(always)]
19118    pub fn pfswe(
19119        self,
19120    ) -> crate::common::RegisterField<
19121        6,
19122        0x1,
19123        1,
19124        0,
19125        pwpr::Pfswe,
19126        pwpr::Pfswe,
19127        Pwpr_SPEC,
19128        crate::common::RW,
19129    > {
19130        crate::common::RegisterField::<
19131            6,
19132            0x1,
19133            1,
19134            0,
19135            pwpr::Pfswe,
19136            pwpr::Pfswe,
19137            Pwpr_SPEC,
19138            crate::common::RW,
19139        >::from_register(self, 0)
19140    }
19141
19142    #[doc = "PFSWE Bit Write Disable"]
19143    #[inline(always)]
19144    pub fn b0wi(
19145        self,
19146    ) -> crate::common::RegisterField<
19147        7,
19148        0x1,
19149        1,
19150        0,
19151        pwpr::B0Wi,
19152        pwpr::B0Wi,
19153        Pwpr_SPEC,
19154        crate::common::RW,
19155    > {
19156        crate::common::RegisterField::<
19157            7,
19158            0x1,
19159            1,
19160            0,
19161            pwpr::B0Wi,
19162            pwpr::B0Wi,
19163            Pwpr_SPEC,
19164            crate::common::RW,
19165        >::from_register(self, 0)
19166    }
19167}
19168impl ::core::default::Default for Pwpr {
19169    #[inline(always)]
19170    fn default() -> Pwpr {
19171        <crate::RegValueT<Pwpr_SPEC> as RegisterValue<_>>::new(128)
19172    }
19173}
19174pub mod pwpr {
19175
19176    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19177    pub struct Pfswe_SPEC;
19178    pub type Pfswe = crate::EnumBitfieldStruct<u8, Pfswe_SPEC>;
19179    impl Pfswe {
19180        #[doc = "Writing to the PmnPFS register is disabled"]
19181        pub const _0: Self = Self::new(0);
19182
19183        #[doc = "Writing to the PmnPFS register is enabled"]
19184        pub const _1: Self = Self::new(1);
19185    }
19186    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19187    pub struct B0Wi_SPEC;
19188    pub type B0Wi = crate::EnumBitfieldStruct<u8, B0Wi_SPEC>;
19189    impl B0Wi {
19190        #[doc = "Writing to the PFSWE bit is enabled"]
19191        pub const _0: Self = Self::new(0);
19192
19193        #[doc = "Writing to the PFSWE bit is disabled"]
19194        pub const _1: Self = Self::new(1);
19195    }
19196}
19197#[doc(hidden)]
19198#[derive(Copy, Clone, Eq, PartialEq)]
19199pub struct Pwprs_SPEC;
19200impl crate::sealed::RegSpec for Pwprs_SPEC {
19201    type DataType = u8;
19202}
19203
19204#[doc = "Write-Protect Register for Secure"]
19205pub type Pwprs = crate::RegValueT<Pwprs_SPEC>;
19206
19207impl Pwprs {
19208    #[doc = "PmnPFS Register Write Enable"]
19209    #[inline(always)]
19210    pub fn pfswe(
19211        self,
19212    ) -> crate::common::RegisterField<
19213        6,
19214        0x1,
19215        1,
19216        0,
19217        pwprs::Pfswe,
19218        pwprs::Pfswe,
19219        Pwprs_SPEC,
19220        crate::common::RW,
19221    > {
19222        crate::common::RegisterField::<
19223            6,
19224            0x1,
19225            1,
19226            0,
19227            pwprs::Pfswe,
19228            pwprs::Pfswe,
19229            Pwprs_SPEC,
19230            crate::common::RW,
19231        >::from_register(self, 0)
19232    }
19233
19234    #[doc = "PFSWE Bit Write Disable"]
19235    #[inline(always)]
19236    pub fn b0wi(
19237        self,
19238    ) -> crate::common::RegisterField<
19239        7,
19240        0x1,
19241        1,
19242        0,
19243        pwprs::B0Wi,
19244        pwprs::B0Wi,
19245        Pwprs_SPEC,
19246        crate::common::RW,
19247    > {
19248        crate::common::RegisterField::<
19249            7,
19250            0x1,
19251            1,
19252            0,
19253            pwprs::B0Wi,
19254            pwprs::B0Wi,
19255            Pwprs_SPEC,
19256            crate::common::RW,
19257        >::from_register(self, 0)
19258    }
19259}
19260impl ::core::default::Default for Pwprs {
19261    #[inline(always)]
19262    fn default() -> Pwprs {
19263        <crate::RegValueT<Pwprs_SPEC> as RegisterValue<_>>::new(128)
19264    }
19265}
19266pub mod pwprs {
19267
19268    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19269    pub struct Pfswe_SPEC;
19270    pub type Pfswe = crate::EnumBitfieldStruct<u8, Pfswe_SPEC>;
19271    impl Pfswe {
19272        #[doc = "Disable writes to the PmnPFS register"]
19273        pub const _0: Self = Self::new(0);
19274
19275        #[doc = "Enable writes to the PmnPFS register"]
19276        pub const _1: Self = Self::new(1);
19277    }
19278    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19279    pub struct B0Wi_SPEC;
19280    pub type B0Wi = crate::EnumBitfieldStruct<u8, B0Wi_SPEC>;
19281    impl B0Wi {
19282        #[doc = "Enable writes the PFSWE bit"]
19283        pub const _0: Self = Self::new(0);
19284
19285        #[doc = "Disable writes to the PFSWE bit"]
19286        pub const _1: Self = Self::new(1);
19287    }
19288}
19289#[doc(hidden)]
19290#[derive(Copy, Clone, Eq, PartialEq)]
19291pub struct Psar_SPEC;
19292impl crate::sealed::RegSpec for Psar_SPEC {
19293    type DataType = u16;
19294}
19295
19296#[doc = "Port Security Attribution register"]
19297pub type Psar = crate::RegValueT<Psar_SPEC>;
19298
19299impl Psar {
19300    #[doc = "Pmn Security Attribution"]
19301    #[inline(always)]
19302    pub fn pmnsa(
19303        self,
19304    ) -> crate::common::RegisterField<
19305        0,
19306        0xffff,
19307        1,
19308        0,
19309        psar::Pmnsa,
19310        psar::Pmnsa,
19311        Psar_SPEC,
19312        crate::common::RW,
19313    > {
19314        crate::common::RegisterField::<
19315            0,
19316            0xffff,
19317            1,
19318            0,
19319            psar::Pmnsa,
19320            psar::Pmnsa,
19321            Psar_SPEC,
19322            crate::common::RW,
19323        >::from_register(self, 0)
19324    }
19325}
19326impl ::core::default::Default for Psar {
19327    #[inline(always)]
19328    fn default() -> Psar {
19329        <crate::RegValueT<Psar_SPEC> as RegisterValue<_>>::new(65535)
19330    }
19331}
19332pub mod psar {
19333
19334    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
19335    pub struct Pmnsa_SPEC;
19336    pub type Pmnsa = crate::EnumBitfieldStruct<u8, Pmnsa_SPEC>;
19337    impl Pmnsa {
19338        #[doc = "Secure"]
19339        pub const _0: Self = Self::new(0);
19340
19341        #[doc = "Non Secure"]
19342        pub const _1: Self = Self::new(1);
19343    }
19344}