ra2e2_pac/
pfs.rs

1/*
2DISCLAIMER
3This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products.
4No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all
5applicable laws, including copyright laws.
6THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED
7OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
8NON-INFRINGEMENT.  ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY
9LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT,
10INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR
11ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
12Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability
13of this software. By using this software, you agree to the additional terms and conditions found by accessing the
14following link:
15http://www.renesas.com/disclaimer
16
17*/
18// Generated from SVD 1.40.00, with svd2pac 0.6.0 on Thu, 24 Jul 2025 04:46:37 +0000
19
20#![allow(clippy::identity_op)]
21#![allow(clippy::module_inception)]
22#![allow(clippy::derivable_impls)]
23#[allow(unused_imports)]
24use crate::common::sealed;
25#[allow(unused_imports)]
26use crate::common::*;
27#[doc = r"Pmn Pin Function Control Register"]
28unsafe impl ::core::marker::Send for super::Pfs {}
29unsafe impl ::core::marker::Sync for super::Pfs {}
30impl super::Pfs {
31    #[allow(unused)]
32    #[inline(always)]
33    pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
34        self.ptr
35    }
36
37    #[doc = "Port 0%s Pin Function Select Register"]
38    #[inline(always)]
39    pub const fn p0pfs(
40        &self,
41    ) -> &'static crate::common::ClusterRegisterArray<
42        crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW>,
43        2,
44        0x4,
45    > {
46        unsafe {
47            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x38usize))
48        }
49    }
50    #[inline(always)]
51    pub const fn p014pfs(
52        &self,
53    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
54        unsafe {
55            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
56                self._svd2pac_as_ptr().add(0x38usize),
57            )
58        }
59    }
60    #[inline(always)]
61    pub const fn p015pfs(
62        &self,
63    ) -> &'static crate::common::Reg<self::P0Pfs_SPEC, crate::common::RW> {
64        unsafe {
65            crate::common::Reg::<self::P0Pfs_SPEC, crate::common::RW>::from_ptr(
66                self._svd2pac_as_ptr().add(0x3cusize),
67            )
68        }
69    }
70
71    #[doc = "Port 0%s Pin Function Select Register"]
72    #[inline(always)]
73    pub const fn p0pfs_ha(
74        &self,
75    ) -> &'static crate::common::ClusterRegisterArray<
76        crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW>,
77        2,
78        0x4,
79    > {
80        unsafe {
81            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x3ausize))
82        }
83    }
84    #[inline(always)]
85    pub const fn p014pfs_ha(
86        &self,
87    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
88        unsafe {
89            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
90                self._svd2pac_as_ptr().add(0x3ausize),
91            )
92        }
93    }
94    #[inline(always)]
95    pub const fn p015pfs_ha(
96        &self,
97    ) -> &'static crate::common::Reg<self::P0PfsHa_SPEC, crate::common::RW> {
98        unsafe {
99            crate::common::Reg::<self::P0PfsHa_SPEC, crate::common::RW>::from_ptr(
100                self._svd2pac_as_ptr().add(0x3eusize),
101            )
102        }
103    }
104
105    #[doc = "Port 0%s Pin Function Select Register"]
106    #[inline(always)]
107    pub const fn p0pfs_by(
108        &self,
109    ) -> &'static crate::common::ClusterRegisterArray<
110        crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW>,
111        2,
112        0x4,
113    > {
114        unsafe {
115            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x3busize))
116        }
117    }
118    #[inline(always)]
119    pub const fn p014pfs_by(
120        &self,
121    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
122        unsafe {
123            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
124                self._svd2pac_as_ptr().add(0x3busize),
125            )
126        }
127    }
128    #[inline(always)]
129    pub const fn p015pfs_by(
130        &self,
131    ) -> &'static crate::common::Reg<self::P0PfsBy_SPEC, crate::common::RW> {
132        unsafe {
133            crate::common::Reg::<self::P0PfsBy_SPEC, crate::common::RW>::from_ptr(
134                self._svd2pac_as_ptr().add(0x3fusize),
135            )
136        }
137    }
138
139    #[doc = "Port 10%s Pin Function Select Register"]
140    #[inline(always)]
141    pub const fn p10pfs(
142        &self,
143    ) -> &'static crate::common::ClusterRegisterArray<
144        crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW>,
145        4,
146        0x4,
147    > {
148        unsafe {
149            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x40usize))
150        }
151    }
152    #[inline(always)]
153    pub const fn p100pfs(
154        &self,
155    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
156        unsafe {
157            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
158                self._svd2pac_as_ptr().add(0x40usize),
159            )
160        }
161    }
162    #[inline(always)]
163    pub const fn p101pfs(
164        &self,
165    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
166        unsafe {
167            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
168                self._svd2pac_as_ptr().add(0x44usize),
169            )
170        }
171    }
172    #[inline(always)]
173    pub const fn p102pfs(
174        &self,
175    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
176        unsafe {
177            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
178                self._svd2pac_as_ptr().add(0x48usize),
179            )
180        }
181    }
182    #[inline(always)]
183    pub const fn p103pfs(
184        &self,
185    ) -> &'static crate::common::Reg<self::P10Pfs_SPEC, crate::common::RW> {
186        unsafe {
187            crate::common::Reg::<self::P10Pfs_SPEC, crate::common::RW>::from_ptr(
188                self._svd2pac_as_ptr().add(0x4cusize),
189            )
190        }
191    }
192
193    #[doc = "Port 10%s Pin Function Select Register"]
194    #[inline(always)]
195    pub const fn p10pfs_ha(
196        &self,
197    ) -> &'static crate::common::ClusterRegisterArray<
198        crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW>,
199        4,
200        0x4,
201    > {
202        unsafe {
203            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x42usize))
204        }
205    }
206    #[inline(always)]
207    pub const fn p100pfs_ha(
208        &self,
209    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
210        unsafe {
211            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
212                self._svd2pac_as_ptr().add(0x42usize),
213            )
214        }
215    }
216    #[inline(always)]
217    pub const fn p101pfs_ha(
218        &self,
219    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
220        unsafe {
221            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
222                self._svd2pac_as_ptr().add(0x46usize),
223            )
224        }
225    }
226    #[inline(always)]
227    pub const fn p102pfs_ha(
228        &self,
229    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
230        unsafe {
231            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
232                self._svd2pac_as_ptr().add(0x4ausize),
233            )
234        }
235    }
236    #[inline(always)]
237    pub const fn p103pfs_ha(
238        &self,
239    ) -> &'static crate::common::Reg<self::P10PfsHa_SPEC, crate::common::RW> {
240        unsafe {
241            crate::common::Reg::<self::P10PfsHa_SPEC, crate::common::RW>::from_ptr(
242                self._svd2pac_as_ptr().add(0x4eusize),
243            )
244        }
245    }
246
247    #[doc = "Port 10%s Pin Function Select Register"]
248    #[inline(always)]
249    pub const fn p10pfs_by(
250        &self,
251    ) -> &'static crate::common::ClusterRegisterArray<
252        crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW>,
253        4,
254        0x4,
255    > {
256        unsafe {
257            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x43usize))
258        }
259    }
260    #[inline(always)]
261    pub const fn p100pfs_by(
262        &self,
263    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
264        unsafe {
265            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
266                self._svd2pac_as_ptr().add(0x43usize),
267            )
268        }
269    }
270    #[inline(always)]
271    pub const fn p101pfs_by(
272        &self,
273    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
274        unsafe {
275            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
276                self._svd2pac_as_ptr().add(0x47usize),
277            )
278        }
279    }
280    #[inline(always)]
281    pub const fn p102pfs_by(
282        &self,
283    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
284        unsafe {
285            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
286                self._svd2pac_as_ptr().add(0x4busize),
287            )
288        }
289    }
290    #[inline(always)]
291    pub const fn p103pfs_by(
292        &self,
293    ) -> &'static crate::common::Reg<self::P10PfsBy_SPEC, crate::common::RW> {
294        unsafe {
295            crate::common::Reg::<self::P10PfsBy_SPEC, crate::common::RW>::from_ptr(
296                self._svd2pac_as_ptr().add(0x4fusize),
297            )
298        }
299    }
300
301    #[doc = "Port 108 Pin Function Select Register"]
302    #[inline(always)]
303    pub const fn p108pfs(
304        &self,
305    ) -> &'static crate::common::Reg<self::P108Pfs_SPEC, crate::common::RW> {
306        unsafe {
307            crate::common::Reg::<self::P108Pfs_SPEC, crate::common::RW>::from_ptr(
308                self._svd2pac_as_ptr().add(96usize),
309            )
310        }
311    }
312
313    #[doc = "Port 108 Pin Function Select Register"]
314    #[inline(always)]
315    pub const fn p108pfs_ha(
316        &self,
317    ) -> &'static crate::common::Reg<self::P108PfsHa_SPEC, crate::common::RW> {
318        unsafe {
319            crate::common::Reg::<self::P108PfsHa_SPEC, crate::common::RW>::from_ptr(
320                self._svd2pac_as_ptr().add(98usize),
321            )
322        }
323    }
324
325    #[doc = "Port 108 Pin Function Select Register"]
326    #[inline(always)]
327    pub const fn p108pfs_by(
328        &self,
329    ) -> &'static crate::common::Reg<self::P108PfsBy_SPEC, crate::common::RW> {
330        unsafe {
331            crate::common::Reg::<self::P108PfsBy_SPEC, crate::common::RW>::from_ptr(
332                self._svd2pac_as_ptr().add(99usize),
333            )
334        }
335    }
336
337    #[doc = "Port 109 Pin Function Select Register"]
338    #[inline(always)]
339    pub const fn p109pfs(
340        &self,
341    ) -> &'static crate::common::Reg<self::P109Pfs_SPEC, crate::common::RW> {
342        unsafe {
343            crate::common::Reg::<self::P109Pfs_SPEC, crate::common::RW>::from_ptr(
344                self._svd2pac_as_ptr().add(100usize),
345            )
346        }
347    }
348
349    #[doc = "Port 109 Pin Function Select Register"]
350    #[inline(always)]
351    pub const fn p109pfs_ha(
352        &self,
353    ) -> &'static crate::common::Reg<self::P109PfsHa_SPEC, crate::common::RW> {
354        unsafe {
355            crate::common::Reg::<self::P109PfsHa_SPEC, crate::common::RW>::from_ptr(
356                self._svd2pac_as_ptr().add(102usize),
357            )
358        }
359    }
360
361    #[doc = "Port 109 Pin Function Select Register"]
362    #[inline(always)]
363    pub const fn p109pfs_by(
364        &self,
365    ) -> &'static crate::common::Reg<self::P109PfsBy_SPEC, crate::common::RW> {
366        unsafe {
367            crate::common::Reg::<self::P109PfsBy_SPEC, crate::common::RW>::from_ptr(
368                self._svd2pac_as_ptr().add(103usize),
369            )
370        }
371    }
372
373    #[doc = "Port 1%s Pin Function Select Register"]
374    #[inline(always)]
375    pub const fn p1pfs(
376        &self,
377    ) -> &'static crate::common::ClusterRegisterArray<
378        crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW>,
379        3,
380        0x4,
381    > {
382        unsafe {
383            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x68usize))
384        }
385    }
386    #[inline(always)]
387    pub const fn p110pfs(
388        &self,
389    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
390        unsafe {
391            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
392                self._svd2pac_as_ptr().add(0x68usize),
393            )
394        }
395    }
396    #[inline(always)]
397    pub const fn p111pfs(
398        &self,
399    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
400        unsafe {
401            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
402                self._svd2pac_as_ptr().add(0x6cusize),
403            )
404        }
405    }
406    #[inline(always)]
407    pub const fn p112pfs(
408        &self,
409    ) -> &'static crate::common::Reg<self::P1Pfs_SPEC, crate::common::RW> {
410        unsafe {
411            crate::common::Reg::<self::P1Pfs_SPEC, crate::common::RW>::from_ptr(
412                self._svd2pac_as_ptr().add(0x70usize),
413            )
414        }
415    }
416
417    #[doc = "Port 1%s Pin Function Select Register"]
418    #[inline(always)]
419    pub const fn p1pfs_ha(
420        &self,
421    ) -> &'static crate::common::ClusterRegisterArray<
422        crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW>,
423        3,
424        0x4,
425    > {
426        unsafe {
427            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x6ausize))
428        }
429    }
430    #[inline(always)]
431    pub const fn p110pfs_ha(
432        &self,
433    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
434        unsafe {
435            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
436                self._svd2pac_as_ptr().add(0x6ausize),
437            )
438        }
439    }
440    #[inline(always)]
441    pub const fn p111pfs_ha(
442        &self,
443    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
444        unsafe {
445            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
446                self._svd2pac_as_ptr().add(0x6eusize),
447            )
448        }
449    }
450    #[inline(always)]
451    pub const fn p112pfs_ha(
452        &self,
453    ) -> &'static crate::common::Reg<self::P1PfsHa_SPEC, crate::common::RW> {
454        unsafe {
455            crate::common::Reg::<self::P1PfsHa_SPEC, crate::common::RW>::from_ptr(
456                self._svd2pac_as_ptr().add(0x72usize),
457            )
458        }
459    }
460
461    #[doc = "Port 1%s Pin Function Select Register"]
462    #[inline(always)]
463    pub const fn p1pfs_by(
464        &self,
465    ) -> &'static crate::common::ClusterRegisterArray<
466        crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW>,
467        3,
468        0x4,
469    > {
470        unsafe {
471            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x6busize))
472        }
473    }
474    #[inline(always)]
475    pub const fn p110pfs_by(
476        &self,
477    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
478        unsafe {
479            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
480                self._svd2pac_as_ptr().add(0x6busize),
481            )
482        }
483    }
484    #[inline(always)]
485    pub const fn p111pfs_by(
486        &self,
487    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
488        unsafe {
489            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
490                self._svd2pac_as_ptr().add(0x6fusize),
491            )
492        }
493    }
494    #[inline(always)]
495    pub const fn p112pfs_by(
496        &self,
497    ) -> &'static crate::common::Reg<self::P1PfsBy_SPEC, crate::common::RW> {
498        unsafe {
499            crate::common::Reg::<self::P1PfsBy_SPEC, crate::common::RW>::from_ptr(
500                self._svd2pac_as_ptr().add(0x73usize),
501            )
502        }
503    }
504
505    #[doc = "Port 200 Pin Function Select Register"]
506    #[inline(always)]
507    pub const fn p200pfs(
508        &self,
509    ) -> &'static crate::common::Reg<self::P200Pfs_SPEC, crate::common::RW> {
510        unsafe {
511            crate::common::Reg::<self::P200Pfs_SPEC, crate::common::RW>::from_ptr(
512                self._svd2pac_as_ptr().add(128usize),
513            )
514        }
515    }
516
517    #[doc = "Port 200 Pin Function Select Register"]
518    #[inline(always)]
519    pub const fn p200pfs_ha(
520        &self,
521    ) -> &'static crate::common::Reg<self::P200PfsHa_SPEC, crate::common::RW> {
522        unsafe {
523            crate::common::Reg::<self::P200PfsHa_SPEC, crate::common::RW>::from_ptr(
524                self._svd2pac_as_ptr().add(130usize),
525            )
526        }
527    }
528
529    #[doc = "Port 200 Pin Function Select Register"]
530    #[inline(always)]
531    pub const fn p200pfs_by(
532        &self,
533    ) -> &'static crate::common::Reg<self::P200PfsBy_SPEC, crate::common::RW> {
534        unsafe {
535            crate::common::Reg::<self::P200PfsBy_SPEC, crate::common::RW>::from_ptr(
536                self._svd2pac_as_ptr().add(131usize),
537            )
538        }
539    }
540
541    #[doc = "Port 201 Pin Function Select Register"]
542    #[inline(always)]
543    pub const fn p201pfs(
544        &self,
545    ) -> &'static crate::common::Reg<self::P201Pfs_SPEC, crate::common::RW> {
546        unsafe {
547            crate::common::Reg::<self::P201Pfs_SPEC, crate::common::RW>::from_ptr(
548                self._svd2pac_as_ptr().add(132usize),
549            )
550        }
551    }
552
553    #[doc = "Port 201 Pin Function Select Register"]
554    #[inline(always)]
555    pub const fn p201pfs_ha(
556        &self,
557    ) -> &'static crate::common::Reg<self::P201PfsHa_SPEC, crate::common::RW> {
558        unsafe {
559            crate::common::Reg::<self::P201PfsHa_SPEC, crate::common::RW>::from_ptr(
560                self._svd2pac_as_ptr().add(134usize),
561            )
562        }
563    }
564
565    #[doc = "Port 201 Pin Function Select Register"]
566    #[inline(always)]
567    pub const fn p201pfs_by(
568        &self,
569    ) -> &'static crate::common::Reg<self::P201PfsBy_SPEC, crate::common::RW> {
570        unsafe {
571            crate::common::Reg::<self::P201PfsBy_SPEC, crate::common::RW>::from_ptr(
572                self._svd2pac_as_ptr().add(135usize),
573            )
574        }
575    }
576
577    #[doc = "Port 205 Pin Function Select Register"]
578    #[inline(always)]
579    pub const fn p205pfs(
580        &self,
581    ) -> &'static crate::common::Reg<self::P205Pfs_SPEC, crate::common::RW> {
582        unsafe {
583            crate::common::Reg::<self::P205Pfs_SPEC, crate::common::RW>::from_ptr(
584                self._svd2pac_as_ptr().add(148usize),
585            )
586        }
587    }
588
589    #[doc = "Port 205 Pin Function Select Register"]
590    #[inline(always)]
591    pub const fn p205pfs_ha(
592        &self,
593    ) -> &'static crate::common::Reg<self::P205PfsHa_SPEC, crate::common::RW> {
594        unsafe {
595            crate::common::Reg::<self::P205PfsHa_SPEC, crate::common::RW>::from_ptr(
596                self._svd2pac_as_ptr().add(150usize),
597            )
598        }
599    }
600
601    #[doc = "Port 205 Pin Function Select Register"]
602    #[inline(always)]
603    pub const fn p205pfs_by(
604        &self,
605    ) -> &'static crate::common::Reg<self::P205PfsBy_SPEC, crate::common::RW> {
606        unsafe {
607            crate::common::Reg::<self::P205PfsBy_SPEC, crate::common::RW>::from_ptr(
608                self._svd2pac_as_ptr().add(151usize),
609            )
610        }
611    }
612
613    #[doc = "Port 300 Pin Function Select Register"]
614    #[inline(always)]
615    pub const fn p300pfs(
616        &self,
617    ) -> &'static crate::common::Reg<self::P300Pfs_SPEC, crate::common::RW> {
618        unsafe {
619            crate::common::Reg::<self::P300Pfs_SPEC, crate::common::RW>::from_ptr(
620                self._svd2pac_as_ptr().add(192usize),
621            )
622        }
623    }
624
625    #[doc = "Port 300 Pin Function Select Register"]
626    #[inline(always)]
627    pub const fn p300pfs_ha(
628        &self,
629    ) -> &'static crate::common::Reg<self::P300PfsHa_SPEC, crate::common::RW> {
630        unsafe {
631            crate::common::Reg::<self::P300PfsHa_SPEC, crate::common::RW>::from_ptr(
632                self._svd2pac_as_ptr().add(194usize),
633            )
634        }
635    }
636
637    #[doc = "Port 300 Pin Function Select Register"]
638    #[inline(always)]
639    pub const fn p300pfs_by(
640        &self,
641    ) -> &'static crate::common::Reg<self::P300PfsBy_SPEC, crate::common::RW> {
642        unsafe {
643            crate::common::Reg::<self::P300PfsBy_SPEC, crate::common::RW>::from_ptr(
644                self._svd2pac_as_ptr().add(195usize),
645            )
646        }
647    }
648
649    #[doc = "Port 40%s Pin Function Select Register"]
650    #[inline(always)]
651    pub const fn p40pfs(
652        &self,
653    ) -> &'static crate::common::ClusterRegisterArray<
654        crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW>,
655        2,
656        0x4,
657    > {
658        unsafe {
659            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x100usize))
660        }
661    }
662    #[inline(always)]
663    pub const fn p400pfs(
664        &self,
665    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
666        unsafe {
667            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
668                self._svd2pac_as_ptr().add(0x100usize),
669            )
670        }
671    }
672    #[inline(always)]
673    pub const fn p401pfs(
674        &self,
675    ) -> &'static crate::common::Reg<self::P40Pfs_SPEC, crate::common::RW> {
676        unsafe {
677            crate::common::Reg::<self::P40Pfs_SPEC, crate::common::RW>::from_ptr(
678                self._svd2pac_as_ptr().add(0x104usize),
679            )
680        }
681    }
682
683    #[doc = "Port 40%s Pin Function Select Register"]
684    #[inline(always)]
685    pub const fn p40pfs_ha(
686        &self,
687    ) -> &'static crate::common::ClusterRegisterArray<
688        crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW>,
689        2,
690        0x4,
691    > {
692        unsafe {
693            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x102usize))
694        }
695    }
696    #[inline(always)]
697    pub const fn p400pfs_ha(
698        &self,
699    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
700        unsafe {
701            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
702                self._svd2pac_as_ptr().add(0x102usize),
703            )
704        }
705    }
706    #[inline(always)]
707    pub const fn p401pfs_ha(
708        &self,
709    ) -> &'static crate::common::Reg<self::P40PfsHa_SPEC, crate::common::RW> {
710        unsafe {
711            crate::common::Reg::<self::P40PfsHa_SPEC, crate::common::RW>::from_ptr(
712                self._svd2pac_as_ptr().add(0x106usize),
713            )
714        }
715    }
716
717    #[doc = "Port 40%s Pin Function Select Register"]
718    #[inline(always)]
719    pub const fn p40pfs_by(
720        &self,
721    ) -> &'static crate::common::ClusterRegisterArray<
722        crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW>,
723        2,
724        0x4,
725    > {
726        unsafe {
727            crate::common::ClusterRegisterArray::from_ptr(self._svd2pac_as_ptr().add(0x103usize))
728        }
729    }
730    #[inline(always)]
731    pub const fn p400pfs_by(
732        &self,
733    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
734        unsafe {
735            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
736                self._svd2pac_as_ptr().add(0x103usize),
737            )
738        }
739    }
740    #[inline(always)]
741    pub const fn p401pfs_by(
742        &self,
743    ) -> &'static crate::common::Reg<self::P40PfsBy_SPEC, crate::common::RW> {
744        unsafe {
745            crate::common::Reg::<self::P40PfsBy_SPEC, crate::common::RW>::from_ptr(
746                self._svd2pac_as_ptr().add(0x107usize),
747            )
748        }
749    }
750
751    #[doc = "Port 914 Pin Function Select Register"]
752    #[inline(always)]
753    pub const fn p914pfs(
754        &self,
755    ) -> &'static crate::common::Reg<self::P914Pfs_SPEC, crate::common::RW> {
756        unsafe {
757            crate::common::Reg::<self::P914Pfs_SPEC, crate::common::RW>::from_ptr(
758                self._svd2pac_as_ptr().add(632usize),
759            )
760        }
761    }
762
763    #[doc = "Port 914 Pin Function Select Register"]
764    #[inline(always)]
765    pub const fn p914pfs_ha(
766        &self,
767    ) -> &'static crate::common::Reg<self::P914PfsHa_SPEC, crate::common::RW> {
768        unsafe {
769            crate::common::Reg::<self::P914PfsHa_SPEC, crate::common::RW>::from_ptr(
770                self._svd2pac_as_ptr().add(634usize),
771            )
772        }
773    }
774
775    #[doc = "Port 914 Pin Function Select Register"]
776    #[inline(always)]
777    pub const fn p914pfs_by(
778        &self,
779    ) -> &'static crate::common::Reg<self::P914PfsBy_SPEC, crate::common::RW> {
780        unsafe {
781            crate::common::Reg::<self::P914PfsBy_SPEC, crate::common::RW>::from_ptr(
782                self._svd2pac_as_ptr().add(635usize),
783            )
784        }
785    }
786
787    #[doc = "Write-Protect Register"]
788    #[inline(always)]
789    pub const fn pwpr(&self) -> &'static crate::common::Reg<self::Pwpr_SPEC, crate::common::RW> {
790        unsafe {
791            crate::common::Reg::<self::Pwpr_SPEC, crate::common::RW>::from_ptr(
792                self._svd2pac_as_ptr().add(1283usize),
793            )
794        }
795    }
796
797    #[doc = "Port Read Wait Control Register"]
798    #[inline(always)]
799    pub const fn prwcntr(
800        &self,
801    ) -> &'static crate::common::Reg<self::Prwcntr_SPEC, crate::common::RW> {
802        unsafe {
803            crate::common::Reg::<self::Prwcntr_SPEC, crate::common::RW>::from_ptr(
804                self._svd2pac_as_ptr().add(1295usize),
805            )
806        }
807    }
808}
809#[doc(hidden)]
810#[derive(Copy, Clone, Eq, PartialEq)]
811pub struct P0Pfs_SPEC;
812impl crate::sealed::RegSpec for P0Pfs_SPEC {
813    type DataType = u32;
814}
815
816#[doc = "Port 0%s Pin Function Select Register"]
817pub type P0Pfs = crate::RegValueT<P0Pfs_SPEC>;
818
819impl P0Pfs {
820    #[doc = "Port Output Data"]
821    #[inline(always)]
822    pub fn podr(
823        self,
824    ) -> crate::common::RegisterField<
825        0,
826        0x1,
827        1,
828        0,
829        p0pfs::Podr,
830        p0pfs::Podr,
831        P0Pfs_SPEC,
832        crate::common::RW,
833    > {
834        crate::common::RegisterField::<
835            0,
836            0x1,
837            1,
838            0,
839            p0pfs::Podr,
840            p0pfs::Podr,
841            P0Pfs_SPEC,
842            crate::common::RW,
843        >::from_register(self, 0)
844    }
845
846    #[doc = "Port State"]
847    #[inline(always)]
848    pub fn pidr(
849        self,
850    ) -> crate::common::RegisterField<
851        1,
852        0x1,
853        1,
854        0,
855        p0pfs::Pidr,
856        p0pfs::Pidr,
857        P0Pfs_SPEC,
858        crate::common::R,
859    > {
860        crate::common::RegisterField::<
861            1,
862            0x1,
863            1,
864            0,
865            p0pfs::Pidr,
866            p0pfs::Pidr,
867            P0Pfs_SPEC,
868            crate::common::R,
869        >::from_register(self, 0)
870    }
871
872    #[doc = "Port Direction"]
873    #[inline(always)]
874    pub fn pdr(
875        self,
876    ) -> crate::common::RegisterField<
877        2,
878        0x1,
879        1,
880        0,
881        p0pfs::Pdr,
882        p0pfs::Pdr,
883        P0Pfs_SPEC,
884        crate::common::RW,
885    > {
886        crate::common::RegisterField::<
887            2,
888            0x1,
889            1,
890            0,
891            p0pfs::Pdr,
892            p0pfs::Pdr,
893            P0Pfs_SPEC,
894            crate::common::RW,
895        >::from_register(self, 0)
896    }
897
898    #[doc = "Pull-up Control"]
899    #[inline(always)]
900    pub fn pcr(
901        self,
902    ) -> crate::common::RegisterField<
903        4,
904        0x1,
905        1,
906        0,
907        p0pfs::Pcr,
908        p0pfs::Pcr,
909        P0Pfs_SPEC,
910        crate::common::RW,
911    > {
912        crate::common::RegisterField::<
913            4,
914            0x1,
915            1,
916            0,
917            p0pfs::Pcr,
918            p0pfs::Pcr,
919            P0Pfs_SPEC,
920            crate::common::RW,
921        >::from_register(self, 0)
922    }
923
924    #[doc = "N-Channel Open-Drain Control"]
925    #[inline(always)]
926    pub fn ncodr(
927        self,
928    ) -> crate::common::RegisterField<
929        6,
930        0x1,
931        1,
932        0,
933        p0pfs::Ncodr,
934        p0pfs::Ncodr,
935        P0Pfs_SPEC,
936        crate::common::RW,
937    > {
938        crate::common::RegisterField::<
939            6,
940            0x1,
941            1,
942            0,
943            p0pfs::Ncodr,
944            p0pfs::Ncodr,
945            P0Pfs_SPEC,
946            crate::common::RW,
947        >::from_register(self, 0)
948    }
949
950    #[doc = "IRQ Input Enable"]
951    #[inline(always)]
952    pub fn isel(
953        self,
954    ) -> crate::common::RegisterField<
955        14,
956        0x1,
957        1,
958        0,
959        p0pfs::Isel,
960        p0pfs::Isel,
961        P0Pfs_SPEC,
962        crate::common::RW,
963    > {
964        crate::common::RegisterField::<
965            14,
966            0x1,
967            1,
968            0,
969            p0pfs::Isel,
970            p0pfs::Isel,
971            P0Pfs_SPEC,
972            crate::common::RW,
973        >::from_register(self, 0)
974    }
975
976    #[doc = "Analog Input Enable"]
977    #[inline(always)]
978    pub fn asel(
979        self,
980    ) -> crate::common::RegisterField<
981        15,
982        0x1,
983        1,
984        0,
985        p0pfs::Asel,
986        p0pfs::Asel,
987        P0Pfs_SPEC,
988        crate::common::RW,
989    > {
990        crate::common::RegisterField::<
991            15,
992            0x1,
993            1,
994            0,
995            p0pfs::Asel,
996            p0pfs::Asel,
997            P0Pfs_SPEC,
998            crate::common::RW,
999        >::from_register(self, 0)
1000    }
1001
1002    #[doc = "Port Mode Control"]
1003    #[inline(always)]
1004    pub fn pmr(
1005        self,
1006    ) -> crate::common::RegisterField<
1007        16,
1008        0x1,
1009        1,
1010        0,
1011        p0pfs::Pmr,
1012        p0pfs::Pmr,
1013        P0Pfs_SPEC,
1014        crate::common::RW,
1015    > {
1016        crate::common::RegisterField::<
1017            16,
1018            0x1,
1019            1,
1020            0,
1021            p0pfs::Pmr,
1022            p0pfs::Pmr,
1023            P0Pfs_SPEC,
1024            crate::common::RW,
1025        >::from_register(self, 0)
1026    }
1027
1028    #[doc = "Peripheral Select"]
1029    #[inline(always)]
1030    pub fn psel(
1031        self,
1032    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P0Pfs_SPEC, crate::common::RW> {
1033        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P0Pfs_SPEC,crate::common::RW>::from_register(self,0)
1034    }
1035}
1036impl ::core::default::Default for P0Pfs {
1037    #[inline(always)]
1038    fn default() -> P0Pfs {
1039        <crate::RegValueT<P0Pfs_SPEC> as RegisterValue<_>>::new(0)
1040    }
1041}
1042pub mod p0pfs {
1043
1044    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1045    pub struct Podr_SPEC;
1046    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
1047    impl Podr {
1048        #[doc = "Output low"]
1049        pub const _0: Self = Self::new(0);
1050
1051        #[doc = "Output high"]
1052        pub const _1: Self = Self::new(1);
1053    }
1054    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1055    pub struct Pidr_SPEC;
1056    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
1057    impl Pidr {
1058        #[doc = "Low level"]
1059        pub const _0: Self = Self::new(0);
1060
1061        #[doc = "High level"]
1062        pub const _1: Self = Self::new(1);
1063    }
1064    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1065    pub struct Pdr_SPEC;
1066    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
1067    impl Pdr {
1068        #[doc = "Input (functions as an input pin)"]
1069        pub const _0: Self = Self::new(0);
1070
1071        #[doc = "Output (functions as an output pin)"]
1072        pub const _1: Self = Self::new(1);
1073    }
1074    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1075    pub struct Pcr_SPEC;
1076    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
1077    impl Pcr {
1078        #[doc = "Disable input pull-up"]
1079        pub const _0: Self = Self::new(0);
1080
1081        #[doc = "Enable input pull-up"]
1082        pub const _1: Self = Self::new(1);
1083    }
1084    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1085    pub struct Ncodr_SPEC;
1086    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
1087    impl Ncodr {
1088        #[doc = "Output CMOS"]
1089        pub const _0: Self = Self::new(0);
1090
1091        #[doc = "Output NMOS open-drain"]
1092        pub const _1: Self = Self::new(1);
1093    }
1094    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1095    pub struct Isel_SPEC;
1096    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
1097    impl Isel {
1098        #[doc = "Do not use as IRQn input pin"]
1099        pub const _0: Self = Self::new(0);
1100
1101        #[doc = "Use as IRQn input pin"]
1102        pub const _1: Self = Self::new(1);
1103    }
1104    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1105    pub struct Asel_SPEC;
1106    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
1107    impl Asel {
1108        #[doc = "Do not use as analog pin"]
1109        pub const _0: Self = Self::new(0);
1110
1111        #[doc = "Use as analog pin"]
1112        pub const _1: Self = Self::new(1);
1113    }
1114    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1115    pub struct Pmr_SPEC;
1116    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
1117    impl Pmr {
1118        #[doc = "Use as general I/O pin"]
1119        pub const _0: Self = Self::new(0);
1120
1121        #[doc = "Use as I/O port for peripheral functions"]
1122        pub const _1: Self = Self::new(1);
1123    }
1124}
1125#[doc(hidden)]
1126#[derive(Copy, Clone, Eq, PartialEq)]
1127pub struct P0PfsHa_SPEC;
1128impl crate::sealed::RegSpec for P0PfsHa_SPEC {
1129    type DataType = u16;
1130}
1131
1132#[doc = "Port 0%s Pin Function Select Register"]
1133pub type P0PfsHa = crate::RegValueT<P0PfsHa_SPEC>;
1134
1135impl P0PfsHa {
1136    #[doc = "Port Output Data"]
1137    #[inline(always)]
1138    pub fn podr(
1139        self,
1140    ) -> crate::common::RegisterField<
1141        0,
1142        0x1,
1143        1,
1144        0,
1145        p0pfs_ha::Podr,
1146        p0pfs_ha::Podr,
1147        P0PfsHa_SPEC,
1148        crate::common::RW,
1149    > {
1150        crate::common::RegisterField::<
1151            0,
1152            0x1,
1153            1,
1154            0,
1155            p0pfs_ha::Podr,
1156            p0pfs_ha::Podr,
1157            P0PfsHa_SPEC,
1158            crate::common::RW,
1159        >::from_register(self, 0)
1160    }
1161
1162    #[doc = "Port State"]
1163    #[inline(always)]
1164    pub fn pidr(
1165        self,
1166    ) -> crate::common::RegisterField<
1167        1,
1168        0x1,
1169        1,
1170        0,
1171        p0pfs_ha::Pidr,
1172        p0pfs_ha::Pidr,
1173        P0PfsHa_SPEC,
1174        crate::common::R,
1175    > {
1176        crate::common::RegisterField::<
1177            1,
1178            0x1,
1179            1,
1180            0,
1181            p0pfs_ha::Pidr,
1182            p0pfs_ha::Pidr,
1183            P0PfsHa_SPEC,
1184            crate::common::R,
1185        >::from_register(self, 0)
1186    }
1187
1188    #[doc = "Port Direction"]
1189    #[inline(always)]
1190    pub fn pdr(
1191        self,
1192    ) -> crate::common::RegisterField<
1193        2,
1194        0x1,
1195        1,
1196        0,
1197        p0pfs_ha::Pdr,
1198        p0pfs_ha::Pdr,
1199        P0PfsHa_SPEC,
1200        crate::common::RW,
1201    > {
1202        crate::common::RegisterField::<
1203            2,
1204            0x1,
1205            1,
1206            0,
1207            p0pfs_ha::Pdr,
1208            p0pfs_ha::Pdr,
1209            P0PfsHa_SPEC,
1210            crate::common::RW,
1211        >::from_register(self, 0)
1212    }
1213
1214    #[doc = "Pull-up Control"]
1215    #[inline(always)]
1216    pub fn pcr(
1217        self,
1218    ) -> crate::common::RegisterField<
1219        4,
1220        0x1,
1221        1,
1222        0,
1223        p0pfs_ha::Pcr,
1224        p0pfs_ha::Pcr,
1225        P0PfsHa_SPEC,
1226        crate::common::RW,
1227    > {
1228        crate::common::RegisterField::<
1229            4,
1230            0x1,
1231            1,
1232            0,
1233            p0pfs_ha::Pcr,
1234            p0pfs_ha::Pcr,
1235            P0PfsHa_SPEC,
1236            crate::common::RW,
1237        >::from_register(self, 0)
1238    }
1239
1240    #[doc = "N-Channel Open-Drain Control"]
1241    #[inline(always)]
1242    pub fn ncodr(
1243        self,
1244    ) -> crate::common::RegisterField<
1245        6,
1246        0x1,
1247        1,
1248        0,
1249        p0pfs_ha::Ncodr,
1250        p0pfs_ha::Ncodr,
1251        P0PfsHa_SPEC,
1252        crate::common::RW,
1253    > {
1254        crate::common::RegisterField::<
1255            6,
1256            0x1,
1257            1,
1258            0,
1259            p0pfs_ha::Ncodr,
1260            p0pfs_ha::Ncodr,
1261            P0PfsHa_SPEC,
1262            crate::common::RW,
1263        >::from_register(self, 0)
1264    }
1265
1266    #[doc = "IRQ Input Enable"]
1267    #[inline(always)]
1268    pub fn isel(
1269        self,
1270    ) -> crate::common::RegisterField<
1271        14,
1272        0x1,
1273        1,
1274        0,
1275        p0pfs_ha::Isel,
1276        p0pfs_ha::Isel,
1277        P0PfsHa_SPEC,
1278        crate::common::RW,
1279    > {
1280        crate::common::RegisterField::<
1281            14,
1282            0x1,
1283            1,
1284            0,
1285            p0pfs_ha::Isel,
1286            p0pfs_ha::Isel,
1287            P0PfsHa_SPEC,
1288            crate::common::RW,
1289        >::from_register(self, 0)
1290    }
1291
1292    #[doc = "Analog Input Enable"]
1293    #[inline(always)]
1294    pub fn asel(
1295        self,
1296    ) -> crate::common::RegisterField<
1297        15,
1298        0x1,
1299        1,
1300        0,
1301        p0pfs_ha::Asel,
1302        p0pfs_ha::Asel,
1303        P0PfsHa_SPEC,
1304        crate::common::RW,
1305    > {
1306        crate::common::RegisterField::<
1307            15,
1308            0x1,
1309            1,
1310            0,
1311            p0pfs_ha::Asel,
1312            p0pfs_ha::Asel,
1313            P0PfsHa_SPEC,
1314            crate::common::RW,
1315        >::from_register(self, 0)
1316    }
1317}
1318impl ::core::default::Default for P0PfsHa {
1319    #[inline(always)]
1320    fn default() -> P0PfsHa {
1321        <crate::RegValueT<P0PfsHa_SPEC> as RegisterValue<_>>::new(0)
1322    }
1323}
1324pub mod p0pfs_ha {
1325
1326    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1327    pub struct Podr_SPEC;
1328    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
1329    impl Podr {
1330        #[doc = "Output low"]
1331        pub const _0: Self = Self::new(0);
1332
1333        #[doc = "Output high"]
1334        pub const _1: Self = Self::new(1);
1335    }
1336    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1337    pub struct Pidr_SPEC;
1338    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
1339    impl Pidr {
1340        #[doc = "Low level"]
1341        pub const _0: Self = Self::new(0);
1342
1343        #[doc = "High level"]
1344        pub const _1: Self = Self::new(1);
1345    }
1346    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1347    pub struct Pdr_SPEC;
1348    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
1349    impl Pdr {
1350        #[doc = "Input (functions as an input pin)"]
1351        pub const _0: Self = Self::new(0);
1352
1353        #[doc = "Output (functions as an output pin)"]
1354        pub const _1: Self = Self::new(1);
1355    }
1356    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1357    pub struct Pcr_SPEC;
1358    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
1359    impl Pcr {
1360        #[doc = "Disable input pull-up"]
1361        pub const _0: Self = Self::new(0);
1362
1363        #[doc = "Enable input pull-up"]
1364        pub const _1: Self = Self::new(1);
1365    }
1366    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1367    pub struct Ncodr_SPEC;
1368    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
1369    impl Ncodr {
1370        #[doc = "Output CMOS"]
1371        pub const _0: Self = Self::new(0);
1372
1373        #[doc = "Output NMOS open-drain"]
1374        pub const _1: Self = Self::new(1);
1375    }
1376    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1377    pub struct Isel_SPEC;
1378    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
1379    impl Isel {
1380        #[doc = "Do not use as IRQn input pin"]
1381        pub const _0: Self = Self::new(0);
1382
1383        #[doc = "Use as IRQn input pin"]
1384        pub const _1: Self = Self::new(1);
1385    }
1386    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1387    pub struct Asel_SPEC;
1388    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
1389    impl Asel {
1390        #[doc = "Do not use as analog pin"]
1391        pub const _0: Self = Self::new(0);
1392
1393        #[doc = "Use as analog pin"]
1394        pub const _1: Self = Self::new(1);
1395    }
1396}
1397#[doc(hidden)]
1398#[derive(Copy, Clone, Eq, PartialEq)]
1399pub struct P0PfsBy_SPEC;
1400impl crate::sealed::RegSpec for P0PfsBy_SPEC {
1401    type DataType = u8;
1402}
1403
1404#[doc = "Port 0%s Pin Function Select Register"]
1405pub type P0PfsBy = crate::RegValueT<P0PfsBy_SPEC>;
1406
1407impl P0PfsBy {
1408    #[doc = "Port Output Data"]
1409    #[inline(always)]
1410    pub fn podr(
1411        self,
1412    ) -> crate::common::RegisterField<
1413        0,
1414        0x1,
1415        1,
1416        0,
1417        p0pfs_by::Podr,
1418        p0pfs_by::Podr,
1419        P0PfsBy_SPEC,
1420        crate::common::RW,
1421    > {
1422        crate::common::RegisterField::<
1423            0,
1424            0x1,
1425            1,
1426            0,
1427            p0pfs_by::Podr,
1428            p0pfs_by::Podr,
1429            P0PfsBy_SPEC,
1430            crate::common::RW,
1431        >::from_register(self, 0)
1432    }
1433
1434    #[doc = "Port State"]
1435    #[inline(always)]
1436    pub fn pidr(
1437        self,
1438    ) -> crate::common::RegisterField<
1439        1,
1440        0x1,
1441        1,
1442        0,
1443        p0pfs_by::Pidr,
1444        p0pfs_by::Pidr,
1445        P0PfsBy_SPEC,
1446        crate::common::R,
1447    > {
1448        crate::common::RegisterField::<
1449            1,
1450            0x1,
1451            1,
1452            0,
1453            p0pfs_by::Pidr,
1454            p0pfs_by::Pidr,
1455            P0PfsBy_SPEC,
1456            crate::common::R,
1457        >::from_register(self, 0)
1458    }
1459
1460    #[doc = "Port Direction"]
1461    #[inline(always)]
1462    pub fn pdr(
1463        self,
1464    ) -> crate::common::RegisterField<
1465        2,
1466        0x1,
1467        1,
1468        0,
1469        p0pfs_by::Pdr,
1470        p0pfs_by::Pdr,
1471        P0PfsBy_SPEC,
1472        crate::common::RW,
1473    > {
1474        crate::common::RegisterField::<
1475            2,
1476            0x1,
1477            1,
1478            0,
1479            p0pfs_by::Pdr,
1480            p0pfs_by::Pdr,
1481            P0PfsBy_SPEC,
1482            crate::common::RW,
1483        >::from_register(self, 0)
1484    }
1485
1486    #[doc = "Pull-up Control"]
1487    #[inline(always)]
1488    pub fn pcr(
1489        self,
1490    ) -> crate::common::RegisterField<
1491        4,
1492        0x1,
1493        1,
1494        0,
1495        p0pfs_by::Pcr,
1496        p0pfs_by::Pcr,
1497        P0PfsBy_SPEC,
1498        crate::common::RW,
1499    > {
1500        crate::common::RegisterField::<
1501            4,
1502            0x1,
1503            1,
1504            0,
1505            p0pfs_by::Pcr,
1506            p0pfs_by::Pcr,
1507            P0PfsBy_SPEC,
1508            crate::common::RW,
1509        >::from_register(self, 0)
1510    }
1511
1512    #[doc = "N-Channel Open-Drain Control"]
1513    #[inline(always)]
1514    pub fn ncodr(
1515        self,
1516    ) -> crate::common::RegisterField<
1517        6,
1518        0x1,
1519        1,
1520        0,
1521        p0pfs_by::Ncodr,
1522        p0pfs_by::Ncodr,
1523        P0PfsBy_SPEC,
1524        crate::common::RW,
1525    > {
1526        crate::common::RegisterField::<
1527            6,
1528            0x1,
1529            1,
1530            0,
1531            p0pfs_by::Ncodr,
1532            p0pfs_by::Ncodr,
1533            P0PfsBy_SPEC,
1534            crate::common::RW,
1535        >::from_register(self, 0)
1536    }
1537}
1538impl ::core::default::Default for P0PfsBy {
1539    #[inline(always)]
1540    fn default() -> P0PfsBy {
1541        <crate::RegValueT<P0PfsBy_SPEC> as RegisterValue<_>>::new(0)
1542    }
1543}
1544pub mod p0pfs_by {
1545
1546    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1547    pub struct Podr_SPEC;
1548    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
1549    impl Podr {
1550        #[doc = "Output low"]
1551        pub const _0: Self = Self::new(0);
1552
1553        #[doc = "Output high"]
1554        pub const _1: Self = Self::new(1);
1555    }
1556    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1557    pub struct Pidr_SPEC;
1558    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
1559    impl Pidr {
1560        #[doc = "Low level"]
1561        pub const _0: Self = Self::new(0);
1562
1563        #[doc = "High level"]
1564        pub const _1: Self = Self::new(1);
1565    }
1566    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1567    pub struct Pdr_SPEC;
1568    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
1569    impl Pdr {
1570        #[doc = "Input (functions as an input pin)"]
1571        pub const _0: Self = Self::new(0);
1572
1573        #[doc = "Output (functions as an output pin)"]
1574        pub const _1: Self = Self::new(1);
1575    }
1576    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1577    pub struct Pcr_SPEC;
1578    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
1579    impl Pcr {
1580        #[doc = "Disable input pull-up"]
1581        pub const _0: Self = Self::new(0);
1582
1583        #[doc = "Enable input pull-up"]
1584        pub const _1: Self = Self::new(1);
1585    }
1586    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1587    pub struct Ncodr_SPEC;
1588    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
1589    impl Ncodr {
1590        #[doc = "Output CMOS"]
1591        pub const _0: Self = Self::new(0);
1592
1593        #[doc = "Output NMOS open-drain"]
1594        pub const _1: Self = Self::new(1);
1595    }
1596}
1597#[doc(hidden)]
1598#[derive(Copy, Clone, Eq, PartialEq)]
1599pub struct P10Pfs_SPEC;
1600impl crate::sealed::RegSpec for P10Pfs_SPEC {
1601    type DataType = u32;
1602}
1603
1604#[doc = "Port 10%s Pin Function Select Register"]
1605pub type P10Pfs = crate::RegValueT<P10Pfs_SPEC>;
1606
1607impl P10Pfs {
1608    #[doc = "Port Output Data"]
1609    #[inline(always)]
1610    pub fn podr(
1611        self,
1612    ) -> crate::common::RegisterField<
1613        0,
1614        0x1,
1615        1,
1616        0,
1617        p10pfs::Podr,
1618        p10pfs::Podr,
1619        P10Pfs_SPEC,
1620        crate::common::RW,
1621    > {
1622        crate::common::RegisterField::<
1623            0,
1624            0x1,
1625            1,
1626            0,
1627            p10pfs::Podr,
1628            p10pfs::Podr,
1629            P10Pfs_SPEC,
1630            crate::common::RW,
1631        >::from_register(self, 0)
1632    }
1633
1634    #[doc = "Port State"]
1635    #[inline(always)]
1636    pub fn pidr(
1637        self,
1638    ) -> crate::common::RegisterField<
1639        1,
1640        0x1,
1641        1,
1642        0,
1643        p10pfs::Pidr,
1644        p10pfs::Pidr,
1645        P10Pfs_SPEC,
1646        crate::common::R,
1647    > {
1648        crate::common::RegisterField::<
1649            1,
1650            0x1,
1651            1,
1652            0,
1653            p10pfs::Pidr,
1654            p10pfs::Pidr,
1655            P10Pfs_SPEC,
1656            crate::common::R,
1657        >::from_register(self, 0)
1658    }
1659
1660    #[doc = "Port Direction"]
1661    #[inline(always)]
1662    pub fn pdr(
1663        self,
1664    ) -> crate::common::RegisterField<
1665        2,
1666        0x1,
1667        1,
1668        0,
1669        p10pfs::Pdr,
1670        p10pfs::Pdr,
1671        P10Pfs_SPEC,
1672        crate::common::RW,
1673    > {
1674        crate::common::RegisterField::<
1675            2,
1676            0x1,
1677            1,
1678            0,
1679            p10pfs::Pdr,
1680            p10pfs::Pdr,
1681            P10Pfs_SPEC,
1682            crate::common::RW,
1683        >::from_register(self, 0)
1684    }
1685
1686    #[doc = "Pull-up Control"]
1687    #[inline(always)]
1688    pub fn pcr(
1689        self,
1690    ) -> crate::common::RegisterField<
1691        4,
1692        0x1,
1693        1,
1694        0,
1695        p10pfs::Pcr,
1696        p10pfs::Pcr,
1697        P10Pfs_SPEC,
1698        crate::common::RW,
1699    > {
1700        crate::common::RegisterField::<
1701            4,
1702            0x1,
1703            1,
1704            0,
1705            p10pfs::Pcr,
1706            p10pfs::Pcr,
1707            P10Pfs_SPEC,
1708            crate::common::RW,
1709        >::from_register(self, 0)
1710    }
1711
1712    #[doc = "N-Channel Open-Drain Control"]
1713    #[inline(always)]
1714    pub fn ncodr(
1715        self,
1716    ) -> crate::common::RegisterField<
1717        6,
1718        0x1,
1719        1,
1720        0,
1721        p10pfs::Ncodr,
1722        p10pfs::Ncodr,
1723        P10Pfs_SPEC,
1724        crate::common::RW,
1725    > {
1726        crate::common::RegisterField::<
1727            6,
1728            0x1,
1729            1,
1730            0,
1731            p10pfs::Ncodr,
1732            p10pfs::Ncodr,
1733            P10Pfs_SPEC,
1734            crate::common::RW,
1735        >::from_register(self, 0)
1736    }
1737
1738    #[doc = "Event on Falling/Event on Rising"]
1739    #[inline(always)]
1740    pub fn eofr(
1741        self,
1742    ) -> crate::common::RegisterField<
1743        12,
1744        0x3,
1745        1,
1746        0,
1747        p10pfs::Eofr,
1748        p10pfs::Eofr,
1749        P10Pfs_SPEC,
1750        crate::common::RW,
1751    > {
1752        crate::common::RegisterField::<
1753            12,
1754            0x3,
1755            1,
1756            0,
1757            p10pfs::Eofr,
1758            p10pfs::Eofr,
1759            P10Pfs_SPEC,
1760            crate::common::RW,
1761        >::from_register(self, 0)
1762    }
1763
1764    #[doc = "IRQ Input Enable"]
1765    #[inline(always)]
1766    pub fn isel(
1767        self,
1768    ) -> crate::common::RegisterField<
1769        14,
1770        0x1,
1771        1,
1772        0,
1773        p10pfs::Isel,
1774        p10pfs::Isel,
1775        P10Pfs_SPEC,
1776        crate::common::RW,
1777    > {
1778        crate::common::RegisterField::<
1779            14,
1780            0x1,
1781            1,
1782            0,
1783            p10pfs::Isel,
1784            p10pfs::Isel,
1785            P10Pfs_SPEC,
1786            crate::common::RW,
1787        >::from_register(self, 0)
1788    }
1789
1790    #[doc = "Analog Input Enable"]
1791    #[inline(always)]
1792    pub fn asel(
1793        self,
1794    ) -> crate::common::RegisterField<
1795        15,
1796        0x1,
1797        1,
1798        0,
1799        p10pfs::Asel,
1800        p10pfs::Asel,
1801        P10Pfs_SPEC,
1802        crate::common::RW,
1803    > {
1804        crate::common::RegisterField::<
1805            15,
1806            0x1,
1807            1,
1808            0,
1809            p10pfs::Asel,
1810            p10pfs::Asel,
1811            P10Pfs_SPEC,
1812            crate::common::RW,
1813        >::from_register(self, 0)
1814    }
1815
1816    #[doc = "Port Mode Control"]
1817    #[inline(always)]
1818    pub fn pmr(
1819        self,
1820    ) -> crate::common::RegisterField<
1821        16,
1822        0x1,
1823        1,
1824        0,
1825        p10pfs::Pmr,
1826        p10pfs::Pmr,
1827        P10Pfs_SPEC,
1828        crate::common::RW,
1829    > {
1830        crate::common::RegisterField::<
1831            16,
1832            0x1,
1833            1,
1834            0,
1835            p10pfs::Pmr,
1836            p10pfs::Pmr,
1837            P10Pfs_SPEC,
1838            crate::common::RW,
1839        >::from_register(self, 0)
1840    }
1841
1842    #[doc = "Peripheral Select"]
1843    #[inline(always)]
1844    pub fn psel(
1845        self,
1846    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P10Pfs_SPEC, crate::common::RW> {
1847        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P10Pfs_SPEC,crate::common::RW>::from_register(self,0)
1848    }
1849}
1850impl ::core::default::Default for P10Pfs {
1851    #[inline(always)]
1852    fn default() -> P10Pfs {
1853        <crate::RegValueT<P10Pfs_SPEC> as RegisterValue<_>>::new(0)
1854    }
1855}
1856pub mod p10pfs {
1857
1858    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1859    pub struct Podr_SPEC;
1860    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
1861    impl Podr {
1862        #[doc = "Output low"]
1863        pub const _0: Self = Self::new(0);
1864
1865        #[doc = "Output high"]
1866        pub const _1: Self = Self::new(1);
1867    }
1868    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1869    pub struct Pidr_SPEC;
1870    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
1871    impl Pidr {
1872        #[doc = "Low level"]
1873        pub const _0: Self = Self::new(0);
1874
1875        #[doc = "High level"]
1876        pub const _1: Self = Self::new(1);
1877    }
1878    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1879    pub struct Pdr_SPEC;
1880    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
1881    impl Pdr {
1882        #[doc = "Input (functions as an input pin)"]
1883        pub const _0: Self = Self::new(0);
1884
1885        #[doc = "Output (functions as an output pin)"]
1886        pub const _1: Self = Self::new(1);
1887    }
1888    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1889    pub struct Pcr_SPEC;
1890    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
1891    impl Pcr {
1892        #[doc = "Disable input pull-up"]
1893        pub const _0: Self = Self::new(0);
1894
1895        #[doc = "Enable input pull-up"]
1896        pub const _1: Self = Self::new(1);
1897    }
1898    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1899    pub struct Ncodr_SPEC;
1900    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
1901    impl Ncodr {
1902        #[doc = "Output CMOS"]
1903        pub const _0: Self = Self::new(0);
1904
1905        #[doc = "Output NMOS open-drain"]
1906        pub const _1: Self = Self::new(1);
1907    }
1908    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1909    pub struct Eofr_SPEC;
1910    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
1911    impl Eofr {
1912        #[doc = "Don\'t care"]
1913        pub const _00: Self = Self::new(0);
1914
1915        #[doc = "Detect rising edge"]
1916        pub const _01: Self = Self::new(1);
1917
1918        #[doc = "Detect falling edge"]
1919        pub const _10: Self = Self::new(2);
1920
1921        #[doc = "Detect both edges"]
1922        pub const _11: Self = Self::new(3);
1923    }
1924    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1925    pub struct Isel_SPEC;
1926    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
1927    impl Isel {
1928        #[doc = "Do not use as IRQn input pin"]
1929        pub const _0: Self = Self::new(0);
1930
1931        #[doc = "Use as IRQn input pin"]
1932        pub const _1: Self = Self::new(1);
1933    }
1934    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1935    pub struct Asel_SPEC;
1936    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
1937    impl Asel {
1938        #[doc = "Do not use as analog pin"]
1939        pub const _0: Self = Self::new(0);
1940
1941        #[doc = "Use as analog pin"]
1942        pub const _1: Self = Self::new(1);
1943    }
1944    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
1945    pub struct Pmr_SPEC;
1946    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
1947    impl Pmr {
1948        #[doc = "Use as general I/O pin"]
1949        pub const _0: Self = Self::new(0);
1950
1951        #[doc = "Use as I/O port for peripheral functions"]
1952        pub const _1: Self = Self::new(1);
1953    }
1954}
1955#[doc(hidden)]
1956#[derive(Copy, Clone, Eq, PartialEq)]
1957pub struct P10PfsHa_SPEC;
1958impl crate::sealed::RegSpec for P10PfsHa_SPEC {
1959    type DataType = u16;
1960}
1961
1962#[doc = "Port 10%s Pin Function Select Register"]
1963pub type P10PfsHa = crate::RegValueT<P10PfsHa_SPEC>;
1964
1965impl P10PfsHa {
1966    #[doc = "Port Output Data"]
1967    #[inline(always)]
1968    pub fn podr(
1969        self,
1970    ) -> crate::common::RegisterField<
1971        0,
1972        0x1,
1973        1,
1974        0,
1975        p10pfs_ha::Podr,
1976        p10pfs_ha::Podr,
1977        P10PfsHa_SPEC,
1978        crate::common::RW,
1979    > {
1980        crate::common::RegisterField::<
1981            0,
1982            0x1,
1983            1,
1984            0,
1985            p10pfs_ha::Podr,
1986            p10pfs_ha::Podr,
1987            P10PfsHa_SPEC,
1988            crate::common::RW,
1989        >::from_register(self, 0)
1990    }
1991
1992    #[doc = "Port State"]
1993    #[inline(always)]
1994    pub fn pidr(
1995        self,
1996    ) -> crate::common::RegisterField<
1997        1,
1998        0x1,
1999        1,
2000        0,
2001        p10pfs_ha::Pidr,
2002        p10pfs_ha::Pidr,
2003        P10PfsHa_SPEC,
2004        crate::common::R,
2005    > {
2006        crate::common::RegisterField::<
2007            1,
2008            0x1,
2009            1,
2010            0,
2011            p10pfs_ha::Pidr,
2012            p10pfs_ha::Pidr,
2013            P10PfsHa_SPEC,
2014            crate::common::R,
2015        >::from_register(self, 0)
2016    }
2017
2018    #[doc = "Port Direction"]
2019    #[inline(always)]
2020    pub fn pdr(
2021        self,
2022    ) -> crate::common::RegisterField<
2023        2,
2024        0x1,
2025        1,
2026        0,
2027        p10pfs_ha::Pdr,
2028        p10pfs_ha::Pdr,
2029        P10PfsHa_SPEC,
2030        crate::common::RW,
2031    > {
2032        crate::common::RegisterField::<
2033            2,
2034            0x1,
2035            1,
2036            0,
2037            p10pfs_ha::Pdr,
2038            p10pfs_ha::Pdr,
2039            P10PfsHa_SPEC,
2040            crate::common::RW,
2041        >::from_register(self, 0)
2042    }
2043
2044    #[doc = "Pull-up Control"]
2045    #[inline(always)]
2046    pub fn pcr(
2047        self,
2048    ) -> crate::common::RegisterField<
2049        4,
2050        0x1,
2051        1,
2052        0,
2053        p10pfs_ha::Pcr,
2054        p10pfs_ha::Pcr,
2055        P10PfsHa_SPEC,
2056        crate::common::RW,
2057    > {
2058        crate::common::RegisterField::<
2059            4,
2060            0x1,
2061            1,
2062            0,
2063            p10pfs_ha::Pcr,
2064            p10pfs_ha::Pcr,
2065            P10PfsHa_SPEC,
2066            crate::common::RW,
2067        >::from_register(self, 0)
2068    }
2069
2070    #[doc = "N-Channel Open-Drain Control"]
2071    #[inline(always)]
2072    pub fn ncodr(
2073        self,
2074    ) -> crate::common::RegisterField<
2075        6,
2076        0x1,
2077        1,
2078        0,
2079        p10pfs_ha::Ncodr,
2080        p10pfs_ha::Ncodr,
2081        P10PfsHa_SPEC,
2082        crate::common::RW,
2083    > {
2084        crate::common::RegisterField::<
2085            6,
2086            0x1,
2087            1,
2088            0,
2089            p10pfs_ha::Ncodr,
2090            p10pfs_ha::Ncodr,
2091            P10PfsHa_SPEC,
2092            crate::common::RW,
2093        >::from_register(self, 0)
2094    }
2095
2096    #[doc = "Event on Falling/Event on Rising"]
2097    #[inline(always)]
2098    pub fn eofr(
2099        self,
2100    ) -> crate::common::RegisterField<
2101        12,
2102        0x3,
2103        1,
2104        0,
2105        p10pfs_ha::Eofr,
2106        p10pfs_ha::Eofr,
2107        P10PfsHa_SPEC,
2108        crate::common::RW,
2109    > {
2110        crate::common::RegisterField::<
2111            12,
2112            0x3,
2113            1,
2114            0,
2115            p10pfs_ha::Eofr,
2116            p10pfs_ha::Eofr,
2117            P10PfsHa_SPEC,
2118            crate::common::RW,
2119        >::from_register(self, 0)
2120    }
2121
2122    #[doc = "IRQ Input Enable"]
2123    #[inline(always)]
2124    pub fn isel(
2125        self,
2126    ) -> crate::common::RegisterField<
2127        14,
2128        0x1,
2129        1,
2130        0,
2131        p10pfs_ha::Isel,
2132        p10pfs_ha::Isel,
2133        P10PfsHa_SPEC,
2134        crate::common::RW,
2135    > {
2136        crate::common::RegisterField::<
2137            14,
2138            0x1,
2139            1,
2140            0,
2141            p10pfs_ha::Isel,
2142            p10pfs_ha::Isel,
2143            P10PfsHa_SPEC,
2144            crate::common::RW,
2145        >::from_register(self, 0)
2146    }
2147
2148    #[doc = "Analog Input Enable"]
2149    #[inline(always)]
2150    pub fn asel(
2151        self,
2152    ) -> crate::common::RegisterField<
2153        15,
2154        0x1,
2155        1,
2156        0,
2157        p10pfs_ha::Asel,
2158        p10pfs_ha::Asel,
2159        P10PfsHa_SPEC,
2160        crate::common::RW,
2161    > {
2162        crate::common::RegisterField::<
2163            15,
2164            0x1,
2165            1,
2166            0,
2167            p10pfs_ha::Asel,
2168            p10pfs_ha::Asel,
2169            P10PfsHa_SPEC,
2170            crate::common::RW,
2171        >::from_register(self, 0)
2172    }
2173}
2174impl ::core::default::Default for P10PfsHa {
2175    #[inline(always)]
2176    fn default() -> P10PfsHa {
2177        <crate::RegValueT<P10PfsHa_SPEC> as RegisterValue<_>>::new(0)
2178    }
2179}
2180pub mod p10pfs_ha {
2181
2182    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2183    pub struct Podr_SPEC;
2184    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
2185    impl Podr {
2186        #[doc = "Output low"]
2187        pub const _0: Self = Self::new(0);
2188
2189        #[doc = "Output high"]
2190        pub const _1: Self = Self::new(1);
2191    }
2192    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2193    pub struct Pidr_SPEC;
2194    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
2195    impl Pidr {
2196        #[doc = "Low level"]
2197        pub const _0: Self = Self::new(0);
2198
2199        #[doc = "High level"]
2200        pub const _1: Self = Self::new(1);
2201    }
2202    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2203    pub struct Pdr_SPEC;
2204    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
2205    impl Pdr {
2206        #[doc = "Input (functions as an input pin)"]
2207        pub const _0: Self = Self::new(0);
2208
2209        #[doc = "Output (functions as an output pin)"]
2210        pub const _1: Self = Self::new(1);
2211    }
2212    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2213    pub struct Pcr_SPEC;
2214    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
2215    impl Pcr {
2216        #[doc = "Disable input pull-up"]
2217        pub const _0: Self = Self::new(0);
2218
2219        #[doc = "Enable input pull-up"]
2220        pub const _1: Self = Self::new(1);
2221    }
2222    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2223    pub struct Ncodr_SPEC;
2224    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
2225    impl Ncodr {
2226        #[doc = "Output CMOS"]
2227        pub const _0: Self = Self::new(0);
2228
2229        #[doc = "Output NMOS open-drain"]
2230        pub const _1: Self = Self::new(1);
2231    }
2232    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2233    pub struct Eofr_SPEC;
2234    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
2235    impl Eofr {
2236        #[doc = "Don\'t care"]
2237        pub const _00: Self = Self::new(0);
2238
2239        #[doc = "Detect rising edge"]
2240        pub const _01: Self = Self::new(1);
2241
2242        #[doc = "Detect falling edge"]
2243        pub const _10: Self = Self::new(2);
2244
2245        #[doc = "Detect both edges"]
2246        pub const _11: Self = Self::new(3);
2247    }
2248    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2249    pub struct Isel_SPEC;
2250    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
2251    impl Isel {
2252        #[doc = "Do not use as IRQn input pin"]
2253        pub const _0: Self = Self::new(0);
2254
2255        #[doc = "Use as IRQn input pin"]
2256        pub const _1: Self = Self::new(1);
2257    }
2258    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2259    pub struct Asel_SPEC;
2260    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
2261    impl Asel {
2262        #[doc = "Do not use as analog pin"]
2263        pub const _0: Self = Self::new(0);
2264
2265        #[doc = "Use as analog pin"]
2266        pub const _1: Self = Self::new(1);
2267    }
2268}
2269#[doc(hidden)]
2270#[derive(Copy, Clone, Eq, PartialEq)]
2271pub struct P10PfsBy_SPEC;
2272impl crate::sealed::RegSpec for P10PfsBy_SPEC {
2273    type DataType = u8;
2274}
2275
2276#[doc = "Port 10%s Pin Function Select Register"]
2277pub type P10PfsBy = crate::RegValueT<P10PfsBy_SPEC>;
2278
2279impl P10PfsBy {
2280    #[doc = "Port Output Data"]
2281    #[inline(always)]
2282    pub fn podr(
2283        self,
2284    ) -> crate::common::RegisterField<
2285        0,
2286        0x1,
2287        1,
2288        0,
2289        p10pfs_by::Podr,
2290        p10pfs_by::Podr,
2291        P10PfsBy_SPEC,
2292        crate::common::RW,
2293    > {
2294        crate::common::RegisterField::<
2295            0,
2296            0x1,
2297            1,
2298            0,
2299            p10pfs_by::Podr,
2300            p10pfs_by::Podr,
2301            P10PfsBy_SPEC,
2302            crate::common::RW,
2303        >::from_register(self, 0)
2304    }
2305
2306    #[doc = "Port State"]
2307    #[inline(always)]
2308    pub fn pidr(
2309        self,
2310    ) -> crate::common::RegisterField<
2311        1,
2312        0x1,
2313        1,
2314        0,
2315        p10pfs_by::Pidr,
2316        p10pfs_by::Pidr,
2317        P10PfsBy_SPEC,
2318        crate::common::R,
2319    > {
2320        crate::common::RegisterField::<
2321            1,
2322            0x1,
2323            1,
2324            0,
2325            p10pfs_by::Pidr,
2326            p10pfs_by::Pidr,
2327            P10PfsBy_SPEC,
2328            crate::common::R,
2329        >::from_register(self, 0)
2330    }
2331
2332    #[doc = "Port Direction"]
2333    #[inline(always)]
2334    pub fn pdr(
2335        self,
2336    ) -> crate::common::RegisterField<
2337        2,
2338        0x1,
2339        1,
2340        0,
2341        p10pfs_by::Pdr,
2342        p10pfs_by::Pdr,
2343        P10PfsBy_SPEC,
2344        crate::common::RW,
2345    > {
2346        crate::common::RegisterField::<
2347            2,
2348            0x1,
2349            1,
2350            0,
2351            p10pfs_by::Pdr,
2352            p10pfs_by::Pdr,
2353            P10PfsBy_SPEC,
2354            crate::common::RW,
2355        >::from_register(self, 0)
2356    }
2357
2358    #[doc = "Pull-up Control"]
2359    #[inline(always)]
2360    pub fn pcr(
2361        self,
2362    ) -> crate::common::RegisterField<
2363        4,
2364        0x1,
2365        1,
2366        0,
2367        p10pfs_by::Pcr,
2368        p10pfs_by::Pcr,
2369        P10PfsBy_SPEC,
2370        crate::common::RW,
2371    > {
2372        crate::common::RegisterField::<
2373            4,
2374            0x1,
2375            1,
2376            0,
2377            p10pfs_by::Pcr,
2378            p10pfs_by::Pcr,
2379            P10PfsBy_SPEC,
2380            crate::common::RW,
2381        >::from_register(self, 0)
2382    }
2383
2384    #[doc = "N-Channel Open-Drain Control"]
2385    #[inline(always)]
2386    pub fn ncodr(
2387        self,
2388    ) -> crate::common::RegisterField<
2389        6,
2390        0x1,
2391        1,
2392        0,
2393        p10pfs_by::Ncodr,
2394        p10pfs_by::Ncodr,
2395        P10PfsBy_SPEC,
2396        crate::common::RW,
2397    > {
2398        crate::common::RegisterField::<
2399            6,
2400            0x1,
2401            1,
2402            0,
2403            p10pfs_by::Ncodr,
2404            p10pfs_by::Ncodr,
2405            P10PfsBy_SPEC,
2406            crate::common::RW,
2407        >::from_register(self, 0)
2408    }
2409}
2410impl ::core::default::Default for P10PfsBy {
2411    #[inline(always)]
2412    fn default() -> P10PfsBy {
2413        <crate::RegValueT<P10PfsBy_SPEC> as RegisterValue<_>>::new(0)
2414    }
2415}
2416pub mod p10pfs_by {
2417
2418    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2419    pub struct Podr_SPEC;
2420    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
2421    impl Podr {
2422        #[doc = "Output low"]
2423        pub const _0: Self = Self::new(0);
2424
2425        #[doc = "Output high"]
2426        pub const _1: Self = Self::new(1);
2427    }
2428    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2429    pub struct Pidr_SPEC;
2430    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
2431    impl Pidr {
2432        #[doc = "Low level"]
2433        pub const _0: Self = Self::new(0);
2434
2435        #[doc = "High level"]
2436        pub const _1: Self = Self::new(1);
2437    }
2438    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2439    pub struct Pdr_SPEC;
2440    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
2441    impl Pdr {
2442        #[doc = "Input (functions as an input pin)"]
2443        pub const _0: Self = Self::new(0);
2444
2445        #[doc = "Output (functions as an output pin)"]
2446        pub const _1: Self = Self::new(1);
2447    }
2448    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2449    pub struct Pcr_SPEC;
2450    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
2451    impl Pcr {
2452        #[doc = "Disable input pull-up"]
2453        pub const _0: Self = Self::new(0);
2454
2455        #[doc = "Enable input pull-up"]
2456        pub const _1: Self = Self::new(1);
2457    }
2458    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2459    pub struct Ncodr_SPEC;
2460    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
2461    impl Ncodr {
2462        #[doc = "Output CMOS"]
2463        pub const _0: Self = Self::new(0);
2464
2465        #[doc = "Output NMOS open-drain"]
2466        pub const _1: Self = Self::new(1);
2467    }
2468}
2469#[doc(hidden)]
2470#[derive(Copy, Clone, Eq, PartialEq)]
2471pub struct P108Pfs_SPEC;
2472impl crate::sealed::RegSpec for P108Pfs_SPEC {
2473    type DataType = u32;
2474}
2475
2476#[doc = "Port 108 Pin Function Select Register"]
2477pub type P108Pfs = crate::RegValueT<P108Pfs_SPEC>;
2478
2479impl P108Pfs {
2480    #[doc = "Port Output Data"]
2481    #[inline(always)]
2482    pub fn podr(
2483        self,
2484    ) -> crate::common::RegisterField<
2485        0,
2486        0x1,
2487        1,
2488        0,
2489        p108pfs::Podr,
2490        p108pfs::Podr,
2491        P108Pfs_SPEC,
2492        crate::common::RW,
2493    > {
2494        crate::common::RegisterField::<
2495            0,
2496            0x1,
2497            1,
2498            0,
2499            p108pfs::Podr,
2500            p108pfs::Podr,
2501            P108Pfs_SPEC,
2502            crate::common::RW,
2503        >::from_register(self, 0)
2504    }
2505
2506    #[doc = "Port State"]
2507    #[inline(always)]
2508    pub fn pidr(
2509        self,
2510    ) -> crate::common::RegisterField<
2511        1,
2512        0x1,
2513        1,
2514        0,
2515        p108pfs::Pidr,
2516        p108pfs::Pidr,
2517        P108Pfs_SPEC,
2518        crate::common::R,
2519    > {
2520        crate::common::RegisterField::<
2521            1,
2522            0x1,
2523            1,
2524            0,
2525            p108pfs::Pidr,
2526            p108pfs::Pidr,
2527            P108Pfs_SPEC,
2528            crate::common::R,
2529        >::from_register(self, 0)
2530    }
2531
2532    #[doc = "Port Direction"]
2533    #[inline(always)]
2534    pub fn pdr(
2535        self,
2536    ) -> crate::common::RegisterField<
2537        2,
2538        0x1,
2539        1,
2540        0,
2541        p108pfs::Pdr,
2542        p108pfs::Pdr,
2543        P108Pfs_SPEC,
2544        crate::common::RW,
2545    > {
2546        crate::common::RegisterField::<
2547            2,
2548            0x1,
2549            1,
2550            0,
2551            p108pfs::Pdr,
2552            p108pfs::Pdr,
2553            P108Pfs_SPEC,
2554            crate::common::RW,
2555        >::from_register(self, 0)
2556    }
2557
2558    #[doc = "Pull-up Control"]
2559    #[inline(always)]
2560    pub fn pcr(
2561        self,
2562    ) -> crate::common::RegisterField<
2563        4,
2564        0x1,
2565        1,
2566        0,
2567        p108pfs::Pcr,
2568        p108pfs::Pcr,
2569        P108Pfs_SPEC,
2570        crate::common::RW,
2571    > {
2572        crate::common::RegisterField::<
2573            4,
2574            0x1,
2575            1,
2576            0,
2577            p108pfs::Pcr,
2578            p108pfs::Pcr,
2579            P108Pfs_SPEC,
2580            crate::common::RW,
2581        >::from_register(self, 0)
2582    }
2583
2584    #[doc = "N-Channel Open-Drain Control"]
2585    #[inline(always)]
2586    pub fn ncodr(
2587        self,
2588    ) -> crate::common::RegisterField<
2589        6,
2590        0x1,
2591        1,
2592        0,
2593        p108pfs::Ncodr,
2594        p108pfs::Ncodr,
2595        P108Pfs_SPEC,
2596        crate::common::RW,
2597    > {
2598        crate::common::RegisterField::<
2599            6,
2600            0x1,
2601            1,
2602            0,
2603            p108pfs::Ncodr,
2604            p108pfs::Ncodr,
2605            P108Pfs_SPEC,
2606            crate::common::RW,
2607        >::from_register(self, 0)
2608    }
2609
2610    #[doc = "Event on Falling/Event on Rising"]
2611    #[inline(always)]
2612    pub fn eofr(
2613        self,
2614    ) -> crate::common::RegisterField<
2615        12,
2616        0x3,
2617        1,
2618        0,
2619        p108pfs::Eofr,
2620        p108pfs::Eofr,
2621        P108Pfs_SPEC,
2622        crate::common::RW,
2623    > {
2624        crate::common::RegisterField::<
2625            12,
2626            0x3,
2627            1,
2628            0,
2629            p108pfs::Eofr,
2630            p108pfs::Eofr,
2631            P108Pfs_SPEC,
2632            crate::common::RW,
2633        >::from_register(self, 0)
2634    }
2635
2636    #[doc = "IRQ Input Enable"]
2637    #[inline(always)]
2638    pub fn isel(
2639        self,
2640    ) -> crate::common::RegisterField<
2641        14,
2642        0x1,
2643        1,
2644        0,
2645        p108pfs::Isel,
2646        p108pfs::Isel,
2647        P108Pfs_SPEC,
2648        crate::common::RW,
2649    > {
2650        crate::common::RegisterField::<
2651            14,
2652            0x1,
2653            1,
2654            0,
2655            p108pfs::Isel,
2656            p108pfs::Isel,
2657            P108Pfs_SPEC,
2658            crate::common::RW,
2659        >::from_register(self, 0)
2660    }
2661
2662    #[doc = "Analog Input Enable"]
2663    #[inline(always)]
2664    pub fn asel(
2665        self,
2666    ) -> crate::common::RegisterField<
2667        15,
2668        0x1,
2669        1,
2670        0,
2671        p108pfs::Asel,
2672        p108pfs::Asel,
2673        P108Pfs_SPEC,
2674        crate::common::RW,
2675    > {
2676        crate::common::RegisterField::<
2677            15,
2678            0x1,
2679            1,
2680            0,
2681            p108pfs::Asel,
2682            p108pfs::Asel,
2683            P108Pfs_SPEC,
2684            crate::common::RW,
2685        >::from_register(self, 0)
2686    }
2687
2688    #[doc = "Port Mode Control"]
2689    #[inline(always)]
2690    pub fn pmr(
2691        self,
2692    ) -> crate::common::RegisterField<
2693        16,
2694        0x1,
2695        1,
2696        0,
2697        p108pfs::Pmr,
2698        p108pfs::Pmr,
2699        P108Pfs_SPEC,
2700        crate::common::RW,
2701    > {
2702        crate::common::RegisterField::<
2703            16,
2704            0x1,
2705            1,
2706            0,
2707            p108pfs::Pmr,
2708            p108pfs::Pmr,
2709            P108Pfs_SPEC,
2710            crate::common::RW,
2711        >::from_register(self, 0)
2712    }
2713
2714    #[doc = "Peripheral Select"]
2715    #[inline(always)]
2716    pub fn psel(
2717        self,
2718    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P108Pfs_SPEC, crate::common::RW> {
2719        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P108Pfs_SPEC,crate::common::RW>::from_register(self,0)
2720    }
2721}
2722impl ::core::default::Default for P108Pfs {
2723    #[inline(always)]
2724    fn default() -> P108Pfs {
2725        <crate::RegValueT<P108Pfs_SPEC> as RegisterValue<_>>::new(65552)
2726    }
2727}
2728pub mod p108pfs {
2729
2730    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2731    pub struct Podr_SPEC;
2732    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
2733    impl Podr {
2734        #[doc = "Output low"]
2735        pub const _0: Self = Self::new(0);
2736
2737        #[doc = "Output high"]
2738        pub const _1: Self = Self::new(1);
2739    }
2740    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2741    pub struct Pidr_SPEC;
2742    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
2743    impl Pidr {
2744        #[doc = "Low level"]
2745        pub const _0: Self = Self::new(0);
2746
2747        #[doc = "High level"]
2748        pub const _1: Self = Self::new(1);
2749    }
2750    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2751    pub struct Pdr_SPEC;
2752    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
2753    impl Pdr {
2754        #[doc = "Input (functions as an input pin)"]
2755        pub const _0: Self = Self::new(0);
2756
2757        #[doc = "Output (functions as an output pin)"]
2758        pub const _1: Self = Self::new(1);
2759    }
2760    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2761    pub struct Pcr_SPEC;
2762    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
2763    impl Pcr {
2764        #[doc = "Disable input pull-up"]
2765        pub const _0: Self = Self::new(0);
2766
2767        #[doc = "Enable input pull-up"]
2768        pub const _1: Self = Self::new(1);
2769    }
2770    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2771    pub struct Ncodr_SPEC;
2772    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
2773    impl Ncodr {
2774        #[doc = "Output CMOS"]
2775        pub const _0: Self = Self::new(0);
2776
2777        #[doc = "Output NMOS open-drain"]
2778        pub const _1: Self = Self::new(1);
2779    }
2780    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2781    pub struct Eofr_SPEC;
2782    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
2783    impl Eofr {
2784        #[doc = "Don\'t care"]
2785        pub const _00: Self = Self::new(0);
2786
2787        #[doc = "Detect rising edge"]
2788        pub const _01: Self = Self::new(1);
2789
2790        #[doc = "Detect falling edge"]
2791        pub const _10: Self = Self::new(2);
2792
2793        #[doc = "Detect both edges"]
2794        pub const _11: Self = Self::new(3);
2795    }
2796    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2797    pub struct Isel_SPEC;
2798    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
2799    impl Isel {
2800        #[doc = "Do not use as IRQn input pin"]
2801        pub const _0: Self = Self::new(0);
2802
2803        #[doc = "Use as IRQn input pin"]
2804        pub const _1: Self = Self::new(1);
2805    }
2806    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2807    pub struct Asel_SPEC;
2808    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
2809    impl Asel {
2810        #[doc = "Do not use as analog pin"]
2811        pub const _0: Self = Self::new(0);
2812
2813        #[doc = "Use as analog pin"]
2814        pub const _1: Self = Self::new(1);
2815    }
2816    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
2817    pub struct Pmr_SPEC;
2818    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
2819    impl Pmr {
2820        #[doc = "Use as general I/O pin"]
2821        pub const _0: Self = Self::new(0);
2822
2823        #[doc = "Use as I/O port for peripheral functions"]
2824        pub const _1: Self = Self::new(1);
2825    }
2826}
2827#[doc(hidden)]
2828#[derive(Copy, Clone, Eq, PartialEq)]
2829pub struct P108PfsHa_SPEC;
2830impl crate::sealed::RegSpec for P108PfsHa_SPEC {
2831    type DataType = u16;
2832}
2833
2834#[doc = "Port 108 Pin Function Select Register"]
2835pub type P108PfsHa = crate::RegValueT<P108PfsHa_SPEC>;
2836
2837impl P108PfsHa {
2838    #[doc = "Port Output Data"]
2839    #[inline(always)]
2840    pub fn podr(
2841        self,
2842    ) -> crate::common::RegisterField<
2843        0,
2844        0x1,
2845        1,
2846        0,
2847        p108pfs_ha::Podr,
2848        p108pfs_ha::Podr,
2849        P108PfsHa_SPEC,
2850        crate::common::RW,
2851    > {
2852        crate::common::RegisterField::<
2853            0,
2854            0x1,
2855            1,
2856            0,
2857            p108pfs_ha::Podr,
2858            p108pfs_ha::Podr,
2859            P108PfsHa_SPEC,
2860            crate::common::RW,
2861        >::from_register(self, 0)
2862    }
2863
2864    #[doc = "Port State"]
2865    #[inline(always)]
2866    pub fn pidr(
2867        self,
2868    ) -> crate::common::RegisterField<
2869        1,
2870        0x1,
2871        1,
2872        0,
2873        p108pfs_ha::Pidr,
2874        p108pfs_ha::Pidr,
2875        P108PfsHa_SPEC,
2876        crate::common::R,
2877    > {
2878        crate::common::RegisterField::<
2879            1,
2880            0x1,
2881            1,
2882            0,
2883            p108pfs_ha::Pidr,
2884            p108pfs_ha::Pidr,
2885            P108PfsHa_SPEC,
2886            crate::common::R,
2887        >::from_register(self, 0)
2888    }
2889
2890    #[doc = "Port Direction"]
2891    #[inline(always)]
2892    pub fn pdr(
2893        self,
2894    ) -> crate::common::RegisterField<
2895        2,
2896        0x1,
2897        1,
2898        0,
2899        p108pfs_ha::Pdr,
2900        p108pfs_ha::Pdr,
2901        P108PfsHa_SPEC,
2902        crate::common::RW,
2903    > {
2904        crate::common::RegisterField::<
2905            2,
2906            0x1,
2907            1,
2908            0,
2909            p108pfs_ha::Pdr,
2910            p108pfs_ha::Pdr,
2911            P108PfsHa_SPEC,
2912            crate::common::RW,
2913        >::from_register(self, 0)
2914    }
2915
2916    #[doc = "Pull-up Control"]
2917    #[inline(always)]
2918    pub fn pcr(
2919        self,
2920    ) -> crate::common::RegisterField<
2921        4,
2922        0x1,
2923        1,
2924        0,
2925        p108pfs_ha::Pcr,
2926        p108pfs_ha::Pcr,
2927        P108PfsHa_SPEC,
2928        crate::common::RW,
2929    > {
2930        crate::common::RegisterField::<
2931            4,
2932            0x1,
2933            1,
2934            0,
2935            p108pfs_ha::Pcr,
2936            p108pfs_ha::Pcr,
2937            P108PfsHa_SPEC,
2938            crate::common::RW,
2939        >::from_register(self, 0)
2940    }
2941
2942    #[doc = "N-Channel Open-Drain Control"]
2943    #[inline(always)]
2944    pub fn ncodr(
2945        self,
2946    ) -> crate::common::RegisterField<
2947        6,
2948        0x1,
2949        1,
2950        0,
2951        p108pfs_ha::Ncodr,
2952        p108pfs_ha::Ncodr,
2953        P108PfsHa_SPEC,
2954        crate::common::RW,
2955    > {
2956        crate::common::RegisterField::<
2957            6,
2958            0x1,
2959            1,
2960            0,
2961            p108pfs_ha::Ncodr,
2962            p108pfs_ha::Ncodr,
2963            P108PfsHa_SPEC,
2964            crate::common::RW,
2965        >::from_register(self, 0)
2966    }
2967
2968    #[doc = "Event on Falling/Event on Rising"]
2969    #[inline(always)]
2970    pub fn eofr(
2971        self,
2972    ) -> crate::common::RegisterField<
2973        12,
2974        0x3,
2975        1,
2976        0,
2977        p108pfs_ha::Eofr,
2978        p108pfs_ha::Eofr,
2979        P108PfsHa_SPEC,
2980        crate::common::RW,
2981    > {
2982        crate::common::RegisterField::<
2983            12,
2984            0x3,
2985            1,
2986            0,
2987            p108pfs_ha::Eofr,
2988            p108pfs_ha::Eofr,
2989            P108PfsHa_SPEC,
2990            crate::common::RW,
2991        >::from_register(self, 0)
2992    }
2993
2994    #[doc = "IRQ Input Enable"]
2995    #[inline(always)]
2996    pub fn isel(
2997        self,
2998    ) -> crate::common::RegisterField<
2999        14,
3000        0x1,
3001        1,
3002        0,
3003        p108pfs_ha::Isel,
3004        p108pfs_ha::Isel,
3005        P108PfsHa_SPEC,
3006        crate::common::RW,
3007    > {
3008        crate::common::RegisterField::<
3009            14,
3010            0x1,
3011            1,
3012            0,
3013            p108pfs_ha::Isel,
3014            p108pfs_ha::Isel,
3015            P108PfsHa_SPEC,
3016            crate::common::RW,
3017        >::from_register(self, 0)
3018    }
3019
3020    #[doc = "Analog Input Enable"]
3021    #[inline(always)]
3022    pub fn asel(
3023        self,
3024    ) -> crate::common::RegisterField<
3025        15,
3026        0x1,
3027        1,
3028        0,
3029        p108pfs_ha::Asel,
3030        p108pfs_ha::Asel,
3031        P108PfsHa_SPEC,
3032        crate::common::RW,
3033    > {
3034        crate::common::RegisterField::<
3035            15,
3036            0x1,
3037            1,
3038            0,
3039            p108pfs_ha::Asel,
3040            p108pfs_ha::Asel,
3041            P108PfsHa_SPEC,
3042            crate::common::RW,
3043        >::from_register(self, 0)
3044    }
3045}
3046impl ::core::default::Default for P108PfsHa {
3047    #[inline(always)]
3048    fn default() -> P108PfsHa {
3049        <crate::RegValueT<P108PfsHa_SPEC> as RegisterValue<_>>::new(16)
3050    }
3051}
3052pub mod p108pfs_ha {
3053
3054    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3055    pub struct Podr_SPEC;
3056    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
3057    impl Podr {
3058        #[doc = "Output low"]
3059        pub const _0: Self = Self::new(0);
3060
3061        #[doc = "Output high"]
3062        pub const _1: Self = Self::new(1);
3063    }
3064    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3065    pub struct Pidr_SPEC;
3066    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
3067    impl Pidr {
3068        #[doc = "Low level"]
3069        pub const _0: Self = Self::new(0);
3070
3071        #[doc = "High level"]
3072        pub const _1: Self = Self::new(1);
3073    }
3074    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3075    pub struct Pdr_SPEC;
3076    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
3077    impl Pdr {
3078        #[doc = "Input (functions as an input pin)"]
3079        pub const _0: Self = Self::new(0);
3080
3081        #[doc = "Output (functions as an output pin)"]
3082        pub const _1: Self = Self::new(1);
3083    }
3084    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3085    pub struct Pcr_SPEC;
3086    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
3087    impl Pcr {
3088        #[doc = "Disable input pull-up"]
3089        pub const _0: Self = Self::new(0);
3090
3091        #[doc = "Enable input pull-up"]
3092        pub const _1: Self = Self::new(1);
3093    }
3094    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3095    pub struct Ncodr_SPEC;
3096    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
3097    impl Ncodr {
3098        #[doc = "Output CMOS"]
3099        pub const _0: Self = Self::new(0);
3100
3101        #[doc = "Output NMOS open-drain"]
3102        pub const _1: Self = Self::new(1);
3103    }
3104    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3105    pub struct Eofr_SPEC;
3106    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
3107    impl Eofr {
3108        #[doc = "Don\'t care"]
3109        pub const _00: Self = Self::new(0);
3110
3111        #[doc = "Detect rising edge"]
3112        pub const _01: Self = Self::new(1);
3113
3114        #[doc = "Detect falling edge"]
3115        pub const _10: Self = Self::new(2);
3116
3117        #[doc = "Detect both edges"]
3118        pub const _11: Self = Self::new(3);
3119    }
3120    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3121    pub struct Isel_SPEC;
3122    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
3123    impl Isel {
3124        #[doc = "Do not use as IRQn input pin"]
3125        pub const _0: Self = Self::new(0);
3126
3127        #[doc = "Use as IRQn input pin"]
3128        pub const _1: Self = Self::new(1);
3129    }
3130    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3131    pub struct Asel_SPEC;
3132    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
3133    impl Asel {
3134        #[doc = "Do not use as analog pin"]
3135        pub const _0: Self = Self::new(0);
3136
3137        #[doc = "Use as analog pin"]
3138        pub const _1: Self = Self::new(1);
3139    }
3140}
3141#[doc(hidden)]
3142#[derive(Copy, Clone, Eq, PartialEq)]
3143pub struct P108PfsBy_SPEC;
3144impl crate::sealed::RegSpec for P108PfsBy_SPEC {
3145    type DataType = u8;
3146}
3147
3148#[doc = "Port 108 Pin Function Select Register"]
3149pub type P108PfsBy = crate::RegValueT<P108PfsBy_SPEC>;
3150
3151impl P108PfsBy {
3152    #[doc = "Port Output Data"]
3153    #[inline(always)]
3154    pub fn podr(
3155        self,
3156    ) -> crate::common::RegisterField<
3157        0,
3158        0x1,
3159        1,
3160        0,
3161        p108pfs_by::Podr,
3162        p108pfs_by::Podr,
3163        P108PfsBy_SPEC,
3164        crate::common::RW,
3165    > {
3166        crate::common::RegisterField::<
3167            0,
3168            0x1,
3169            1,
3170            0,
3171            p108pfs_by::Podr,
3172            p108pfs_by::Podr,
3173            P108PfsBy_SPEC,
3174            crate::common::RW,
3175        >::from_register(self, 0)
3176    }
3177
3178    #[doc = "Port State"]
3179    #[inline(always)]
3180    pub fn pidr(
3181        self,
3182    ) -> crate::common::RegisterField<
3183        1,
3184        0x1,
3185        1,
3186        0,
3187        p108pfs_by::Pidr,
3188        p108pfs_by::Pidr,
3189        P108PfsBy_SPEC,
3190        crate::common::R,
3191    > {
3192        crate::common::RegisterField::<
3193            1,
3194            0x1,
3195            1,
3196            0,
3197            p108pfs_by::Pidr,
3198            p108pfs_by::Pidr,
3199            P108PfsBy_SPEC,
3200            crate::common::R,
3201        >::from_register(self, 0)
3202    }
3203
3204    #[doc = "Port Direction"]
3205    #[inline(always)]
3206    pub fn pdr(
3207        self,
3208    ) -> crate::common::RegisterField<
3209        2,
3210        0x1,
3211        1,
3212        0,
3213        p108pfs_by::Pdr,
3214        p108pfs_by::Pdr,
3215        P108PfsBy_SPEC,
3216        crate::common::RW,
3217    > {
3218        crate::common::RegisterField::<
3219            2,
3220            0x1,
3221            1,
3222            0,
3223            p108pfs_by::Pdr,
3224            p108pfs_by::Pdr,
3225            P108PfsBy_SPEC,
3226            crate::common::RW,
3227        >::from_register(self, 0)
3228    }
3229
3230    #[doc = "Pull-up Control"]
3231    #[inline(always)]
3232    pub fn pcr(
3233        self,
3234    ) -> crate::common::RegisterField<
3235        4,
3236        0x1,
3237        1,
3238        0,
3239        p108pfs_by::Pcr,
3240        p108pfs_by::Pcr,
3241        P108PfsBy_SPEC,
3242        crate::common::RW,
3243    > {
3244        crate::common::RegisterField::<
3245            4,
3246            0x1,
3247            1,
3248            0,
3249            p108pfs_by::Pcr,
3250            p108pfs_by::Pcr,
3251            P108PfsBy_SPEC,
3252            crate::common::RW,
3253        >::from_register(self, 0)
3254    }
3255
3256    #[doc = "N-Channel Open-Drain Control"]
3257    #[inline(always)]
3258    pub fn ncodr(
3259        self,
3260    ) -> crate::common::RegisterField<
3261        6,
3262        0x1,
3263        1,
3264        0,
3265        p108pfs_by::Ncodr,
3266        p108pfs_by::Ncodr,
3267        P108PfsBy_SPEC,
3268        crate::common::RW,
3269    > {
3270        crate::common::RegisterField::<
3271            6,
3272            0x1,
3273            1,
3274            0,
3275            p108pfs_by::Ncodr,
3276            p108pfs_by::Ncodr,
3277            P108PfsBy_SPEC,
3278            crate::common::RW,
3279        >::from_register(self, 0)
3280    }
3281}
3282impl ::core::default::Default for P108PfsBy {
3283    #[inline(always)]
3284    fn default() -> P108PfsBy {
3285        <crate::RegValueT<P108PfsBy_SPEC> as RegisterValue<_>>::new(16)
3286    }
3287}
3288pub mod p108pfs_by {
3289
3290    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3291    pub struct Podr_SPEC;
3292    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
3293    impl Podr {
3294        #[doc = "Output low"]
3295        pub const _0: Self = Self::new(0);
3296
3297        #[doc = "Output high"]
3298        pub const _1: Self = Self::new(1);
3299    }
3300    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3301    pub struct Pidr_SPEC;
3302    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
3303    impl Pidr {
3304        #[doc = "Low level"]
3305        pub const _0: Self = Self::new(0);
3306
3307        #[doc = "High level"]
3308        pub const _1: Self = Self::new(1);
3309    }
3310    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3311    pub struct Pdr_SPEC;
3312    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
3313    impl Pdr {
3314        #[doc = "Input (functions as an input pin)"]
3315        pub const _0: Self = Self::new(0);
3316
3317        #[doc = "Output (functions as an output pin)"]
3318        pub const _1: Self = Self::new(1);
3319    }
3320    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3321    pub struct Pcr_SPEC;
3322    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
3323    impl Pcr {
3324        #[doc = "Disable input pull-up"]
3325        pub const _0: Self = Self::new(0);
3326
3327        #[doc = "Enable input pull-up"]
3328        pub const _1: Self = Self::new(1);
3329    }
3330    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3331    pub struct Ncodr_SPEC;
3332    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
3333    impl Ncodr {
3334        #[doc = "Output CMOS"]
3335        pub const _0: Self = Self::new(0);
3336
3337        #[doc = "Output NMOS open-drain"]
3338        pub const _1: Self = Self::new(1);
3339    }
3340}
3341#[doc(hidden)]
3342#[derive(Copy, Clone, Eq, PartialEq)]
3343pub struct P109Pfs_SPEC;
3344impl crate::sealed::RegSpec for P109Pfs_SPEC {
3345    type DataType = u32;
3346}
3347
3348#[doc = "Port 109 Pin Function Select Register"]
3349pub type P109Pfs = crate::RegValueT<P109Pfs_SPEC>;
3350
3351impl P109Pfs {
3352    #[doc = "Port Output Data"]
3353    #[inline(always)]
3354    pub fn podr(
3355        self,
3356    ) -> crate::common::RegisterField<
3357        0,
3358        0x1,
3359        1,
3360        0,
3361        p109pfs::Podr,
3362        p109pfs::Podr,
3363        P109Pfs_SPEC,
3364        crate::common::RW,
3365    > {
3366        crate::common::RegisterField::<
3367            0,
3368            0x1,
3369            1,
3370            0,
3371            p109pfs::Podr,
3372            p109pfs::Podr,
3373            P109Pfs_SPEC,
3374            crate::common::RW,
3375        >::from_register(self, 0)
3376    }
3377
3378    #[doc = "Port State"]
3379    #[inline(always)]
3380    pub fn pidr(
3381        self,
3382    ) -> crate::common::RegisterField<
3383        1,
3384        0x1,
3385        1,
3386        0,
3387        p109pfs::Pidr,
3388        p109pfs::Pidr,
3389        P109Pfs_SPEC,
3390        crate::common::R,
3391    > {
3392        crate::common::RegisterField::<
3393            1,
3394            0x1,
3395            1,
3396            0,
3397            p109pfs::Pidr,
3398            p109pfs::Pidr,
3399            P109Pfs_SPEC,
3400            crate::common::R,
3401        >::from_register(self, 0)
3402    }
3403
3404    #[doc = "Port Direction"]
3405    #[inline(always)]
3406    pub fn pdr(
3407        self,
3408    ) -> crate::common::RegisterField<
3409        2,
3410        0x1,
3411        1,
3412        0,
3413        p109pfs::Pdr,
3414        p109pfs::Pdr,
3415        P109Pfs_SPEC,
3416        crate::common::RW,
3417    > {
3418        crate::common::RegisterField::<
3419            2,
3420            0x1,
3421            1,
3422            0,
3423            p109pfs::Pdr,
3424            p109pfs::Pdr,
3425            P109Pfs_SPEC,
3426            crate::common::RW,
3427        >::from_register(self, 0)
3428    }
3429
3430    #[doc = "Pull-up Control"]
3431    #[inline(always)]
3432    pub fn pcr(
3433        self,
3434    ) -> crate::common::RegisterField<
3435        4,
3436        0x1,
3437        1,
3438        0,
3439        p109pfs::Pcr,
3440        p109pfs::Pcr,
3441        P109Pfs_SPEC,
3442        crate::common::RW,
3443    > {
3444        crate::common::RegisterField::<
3445            4,
3446            0x1,
3447            1,
3448            0,
3449            p109pfs::Pcr,
3450            p109pfs::Pcr,
3451            P109Pfs_SPEC,
3452            crate::common::RW,
3453        >::from_register(self, 0)
3454    }
3455
3456    #[doc = "N-Channel Open-Drain Control"]
3457    #[inline(always)]
3458    pub fn ncodr(
3459        self,
3460    ) -> crate::common::RegisterField<
3461        6,
3462        0x1,
3463        1,
3464        0,
3465        p109pfs::Ncodr,
3466        p109pfs::Ncodr,
3467        P109Pfs_SPEC,
3468        crate::common::RW,
3469    > {
3470        crate::common::RegisterField::<
3471            6,
3472            0x1,
3473            1,
3474            0,
3475            p109pfs::Ncodr,
3476            p109pfs::Ncodr,
3477            P109Pfs_SPEC,
3478            crate::common::RW,
3479        >::from_register(self, 0)
3480    }
3481
3482    #[doc = "Event on Falling/Event on Rising"]
3483    #[inline(always)]
3484    pub fn eofr(
3485        self,
3486    ) -> crate::common::RegisterField<
3487        12,
3488        0x3,
3489        1,
3490        0,
3491        p109pfs::Eofr,
3492        p109pfs::Eofr,
3493        P109Pfs_SPEC,
3494        crate::common::RW,
3495    > {
3496        crate::common::RegisterField::<
3497            12,
3498            0x3,
3499            1,
3500            0,
3501            p109pfs::Eofr,
3502            p109pfs::Eofr,
3503            P109Pfs_SPEC,
3504            crate::common::RW,
3505        >::from_register(self, 0)
3506    }
3507
3508    #[doc = "IRQ Input Enable"]
3509    #[inline(always)]
3510    pub fn isel(
3511        self,
3512    ) -> crate::common::RegisterField<
3513        14,
3514        0x1,
3515        1,
3516        0,
3517        p109pfs::Isel,
3518        p109pfs::Isel,
3519        P109Pfs_SPEC,
3520        crate::common::RW,
3521    > {
3522        crate::common::RegisterField::<
3523            14,
3524            0x1,
3525            1,
3526            0,
3527            p109pfs::Isel,
3528            p109pfs::Isel,
3529            P109Pfs_SPEC,
3530            crate::common::RW,
3531        >::from_register(self, 0)
3532    }
3533
3534    #[doc = "Analog Input Enable"]
3535    #[inline(always)]
3536    pub fn asel(
3537        self,
3538    ) -> crate::common::RegisterField<
3539        15,
3540        0x1,
3541        1,
3542        0,
3543        p109pfs::Asel,
3544        p109pfs::Asel,
3545        P109Pfs_SPEC,
3546        crate::common::RW,
3547    > {
3548        crate::common::RegisterField::<
3549            15,
3550            0x1,
3551            1,
3552            0,
3553            p109pfs::Asel,
3554            p109pfs::Asel,
3555            P109Pfs_SPEC,
3556            crate::common::RW,
3557        >::from_register(self, 0)
3558    }
3559
3560    #[doc = "Port Mode Control"]
3561    #[inline(always)]
3562    pub fn pmr(
3563        self,
3564    ) -> crate::common::RegisterField<
3565        16,
3566        0x1,
3567        1,
3568        0,
3569        p109pfs::Pmr,
3570        p109pfs::Pmr,
3571        P109Pfs_SPEC,
3572        crate::common::RW,
3573    > {
3574        crate::common::RegisterField::<
3575            16,
3576            0x1,
3577            1,
3578            0,
3579            p109pfs::Pmr,
3580            p109pfs::Pmr,
3581            P109Pfs_SPEC,
3582            crate::common::RW,
3583        >::from_register(self, 0)
3584    }
3585
3586    #[doc = "Peripheral Select"]
3587    #[inline(always)]
3588    pub fn psel(
3589        self,
3590    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P109Pfs_SPEC, crate::common::RW> {
3591        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P109Pfs_SPEC,crate::common::RW>::from_register(self,0)
3592    }
3593}
3594impl ::core::default::Default for P109Pfs {
3595    #[inline(always)]
3596    fn default() -> P109Pfs {
3597        <crate::RegValueT<P109Pfs_SPEC> as RegisterValue<_>>::new(0)
3598    }
3599}
3600pub mod p109pfs {
3601
3602    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3603    pub struct Podr_SPEC;
3604    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
3605    impl Podr {
3606        #[doc = "Output low"]
3607        pub const _0: Self = Self::new(0);
3608
3609        #[doc = "Output high"]
3610        pub const _1: Self = Self::new(1);
3611    }
3612    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3613    pub struct Pidr_SPEC;
3614    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
3615    impl Pidr {
3616        #[doc = "Low level"]
3617        pub const _0: Self = Self::new(0);
3618
3619        #[doc = "High level"]
3620        pub const _1: Self = Self::new(1);
3621    }
3622    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3623    pub struct Pdr_SPEC;
3624    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
3625    impl Pdr {
3626        #[doc = "Input (functions as an input pin)"]
3627        pub const _0: Self = Self::new(0);
3628
3629        #[doc = "Output (functions as an output pin)"]
3630        pub const _1: Self = Self::new(1);
3631    }
3632    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3633    pub struct Pcr_SPEC;
3634    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
3635    impl Pcr {
3636        #[doc = "Disable input pull-up"]
3637        pub const _0: Self = Self::new(0);
3638
3639        #[doc = "Enable input pull-up"]
3640        pub const _1: Self = Self::new(1);
3641    }
3642    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3643    pub struct Ncodr_SPEC;
3644    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
3645    impl Ncodr {
3646        #[doc = "Output CMOS"]
3647        pub const _0: Self = Self::new(0);
3648
3649        #[doc = "Output NMOS open-drain"]
3650        pub const _1: Self = Self::new(1);
3651    }
3652    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3653    pub struct Eofr_SPEC;
3654    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
3655    impl Eofr {
3656        #[doc = "Don\'t care"]
3657        pub const _00: Self = Self::new(0);
3658
3659        #[doc = "Detect rising edge"]
3660        pub const _01: Self = Self::new(1);
3661
3662        #[doc = "Detect falling edge"]
3663        pub const _10: Self = Self::new(2);
3664
3665        #[doc = "Detect both edges"]
3666        pub const _11: Self = Self::new(3);
3667    }
3668    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3669    pub struct Isel_SPEC;
3670    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
3671    impl Isel {
3672        #[doc = "Do not use as IRQn input pin"]
3673        pub const _0: Self = Self::new(0);
3674
3675        #[doc = "Use as IRQn input pin"]
3676        pub const _1: Self = Self::new(1);
3677    }
3678    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3679    pub struct Asel_SPEC;
3680    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
3681    impl Asel {
3682        #[doc = "Do not use as analog pin"]
3683        pub const _0: Self = Self::new(0);
3684
3685        #[doc = "Use as analog pin"]
3686        pub const _1: Self = Self::new(1);
3687    }
3688    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3689    pub struct Pmr_SPEC;
3690    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
3691    impl Pmr {
3692        #[doc = "Use as general I/O pin"]
3693        pub const _0: Self = Self::new(0);
3694
3695        #[doc = "Use as I/O port for peripheral functions"]
3696        pub const _1: Self = Self::new(1);
3697    }
3698}
3699#[doc(hidden)]
3700#[derive(Copy, Clone, Eq, PartialEq)]
3701pub struct P109PfsHa_SPEC;
3702impl crate::sealed::RegSpec for P109PfsHa_SPEC {
3703    type DataType = u16;
3704}
3705
3706#[doc = "Port 109 Pin Function Select Register"]
3707pub type P109PfsHa = crate::RegValueT<P109PfsHa_SPEC>;
3708
3709impl P109PfsHa {
3710    #[doc = "Port Output Data"]
3711    #[inline(always)]
3712    pub fn podr(
3713        self,
3714    ) -> crate::common::RegisterField<
3715        0,
3716        0x1,
3717        1,
3718        0,
3719        p109pfs_ha::Podr,
3720        p109pfs_ha::Podr,
3721        P109PfsHa_SPEC,
3722        crate::common::RW,
3723    > {
3724        crate::common::RegisterField::<
3725            0,
3726            0x1,
3727            1,
3728            0,
3729            p109pfs_ha::Podr,
3730            p109pfs_ha::Podr,
3731            P109PfsHa_SPEC,
3732            crate::common::RW,
3733        >::from_register(self, 0)
3734    }
3735
3736    #[doc = "Port State"]
3737    #[inline(always)]
3738    pub fn pidr(
3739        self,
3740    ) -> crate::common::RegisterField<
3741        1,
3742        0x1,
3743        1,
3744        0,
3745        p109pfs_ha::Pidr,
3746        p109pfs_ha::Pidr,
3747        P109PfsHa_SPEC,
3748        crate::common::R,
3749    > {
3750        crate::common::RegisterField::<
3751            1,
3752            0x1,
3753            1,
3754            0,
3755            p109pfs_ha::Pidr,
3756            p109pfs_ha::Pidr,
3757            P109PfsHa_SPEC,
3758            crate::common::R,
3759        >::from_register(self, 0)
3760    }
3761
3762    #[doc = "Port Direction"]
3763    #[inline(always)]
3764    pub fn pdr(
3765        self,
3766    ) -> crate::common::RegisterField<
3767        2,
3768        0x1,
3769        1,
3770        0,
3771        p109pfs_ha::Pdr,
3772        p109pfs_ha::Pdr,
3773        P109PfsHa_SPEC,
3774        crate::common::RW,
3775    > {
3776        crate::common::RegisterField::<
3777            2,
3778            0x1,
3779            1,
3780            0,
3781            p109pfs_ha::Pdr,
3782            p109pfs_ha::Pdr,
3783            P109PfsHa_SPEC,
3784            crate::common::RW,
3785        >::from_register(self, 0)
3786    }
3787
3788    #[doc = "Pull-up Control"]
3789    #[inline(always)]
3790    pub fn pcr(
3791        self,
3792    ) -> crate::common::RegisterField<
3793        4,
3794        0x1,
3795        1,
3796        0,
3797        p109pfs_ha::Pcr,
3798        p109pfs_ha::Pcr,
3799        P109PfsHa_SPEC,
3800        crate::common::RW,
3801    > {
3802        crate::common::RegisterField::<
3803            4,
3804            0x1,
3805            1,
3806            0,
3807            p109pfs_ha::Pcr,
3808            p109pfs_ha::Pcr,
3809            P109PfsHa_SPEC,
3810            crate::common::RW,
3811        >::from_register(self, 0)
3812    }
3813
3814    #[doc = "N-Channel Open-Drain Control"]
3815    #[inline(always)]
3816    pub fn ncodr(
3817        self,
3818    ) -> crate::common::RegisterField<
3819        6,
3820        0x1,
3821        1,
3822        0,
3823        p109pfs_ha::Ncodr,
3824        p109pfs_ha::Ncodr,
3825        P109PfsHa_SPEC,
3826        crate::common::RW,
3827    > {
3828        crate::common::RegisterField::<
3829            6,
3830            0x1,
3831            1,
3832            0,
3833            p109pfs_ha::Ncodr,
3834            p109pfs_ha::Ncodr,
3835            P109PfsHa_SPEC,
3836            crate::common::RW,
3837        >::from_register(self, 0)
3838    }
3839
3840    #[doc = "Event on Falling/Event on Rising"]
3841    #[inline(always)]
3842    pub fn eofr(
3843        self,
3844    ) -> crate::common::RegisterField<
3845        12,
3846        0x3,
3847        1,
3848        0,
3849        p109pfs_ha::Eofr,
3850        p109pfs_ha::Eofr,
3851        P109PfsHa_SPEC,
3852        crate::common::RW,
3853    > {
3854        crate::common::RegisterField::<
3855            12,
3856            0x3,
3857            1,
3858            0,
3859            p109pfs_ha::Eofr,
3860            p109pfs_ha::Eofr,
3861            P109PfsHa_SPEC,
3862            crate::common::RW,
3863        >::from_register(self, 0)
3864    }
3865
3866    #[doc = "IRQ Input Enable"]
3867    #[inline(always)]
3868    pub fn isel(
3869        self,
3870    ) -> crate::common::RegisterField<
3871        14,
3872        0x1,
3873        1,
3874        0,
3875        p109pfs_ha::Isel,
3876        p109pfs_ha::Isel,
3877        P109PfsHa_SPEC,
3878        crate::common::RW,
3879    > {
3880        crate::common::RegisterField::<
3881            14,
3882            0x1,
3883            1,
3884            0,
3885            p109pfs_ha::Isel,
3886            p109pfs_ha::Isel,
3887            P109PfsHa_SPEC,
3888            crate::common::RW,
3889        >::from_register(self, 0)
3890    }
3891
3892    #[doc = "Analog Input Enable"]
3893    #[inline(always)]
3894    pub fn asel(
3895        self,
3896    ) -> crate::common::RegisterField<
3897        15,
3898        0x1,
3899        1,
3900        0,
3901        p109pfs_ha::Asel,
3902        p109pfs_ha::Asel,
3903        P109PfsHa_SPEC,
3904        crate::common::RW,
3905    > {
3906        crate::common::RegisterField::<
3907            15,
3908            0x1,
3909            1,
3910            0,
3911            p109pfs_ha::Asel,
3912            p109pfs_ha::Asel,
3913            P109PfsHa_SPEC,
3914            crate::common::RW,
3915        >::from_register(self, 0)
3916    }
3917}
3918impl ::core::default::Default for P109PfsHa {
3919    #[inline(always)]
3920    fn default() -> P109PfsHa {
3921        <crate::RegValueT<P109PfsHa_SPEC> as RegisterValue<_>>::new(0)
3922    }
3923}
3924pub mod p109pfs_ha {
3925
3926    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3927    pub struct Podr_SPEC;
3928    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
3929    impl Podr {
3930        #[doc = "Output low"]
3931        pub const _0: Self = Self::new(0);
3932
3933        #[doc = "Output high"]
3934        pub const _1: Self = Self::new(1);
3935    }
3936    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3937    pub struct Pidr_SPEC;
3938    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
3939    impl Pidr {
3940        #[doc = "Low level"]
3941        pub const _0: Self = Self::new(0);
3942
3943        #[doc = "High level"]
3944        pub const _1: Self = Self::new(1);
3945    }
3946    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3947    pub struct Pdr_SPEC;
3948    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
3949    impl Pdr {
3950        #[doc = "Input (functions as an input pin)"]
3951        pub const _0: Self = Self::new(0);
3952
3953        #[doc = "Output (functions as an output pin)"]
3954        pub const _1: Self = Self::new(1);
3955    }
3956    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3957    pub struct Pcr_SPEC;
3958    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
3959    impl Pcr {
3960        #[doc = "Disable input pull-up"]
3961        pub const _0: Self = Self::new(0);
3962
3963        #[doc = "Enable input pull-up"]
3964        pub const _1: Self = Self::new(1);
3965    }
3966    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3967    pub struct Ncodr_SPEC;
3968    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
3969    impl Ncodr {
3970        #[doc = "Output CMOS"]
3971        pub const _0: Self = Self::new(0);
3972
3973        #[doc = "Output NMOS open-drain"]
3974        pub const _1: Self = Self::new(1);
3975    }
3976    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3977    pub struct Eofr_SPEC;
3978    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
3979    impl Eofr {
3980        #[doc = "Don\'t care"]
3981        pub const _00: Self = Self::new(0);
3982
3983        #[doc = "Detect rising edge"]
3984        pub const _01: Self = Self::new(1);
3985
3986        #[doc = "Detect falling edge"]
3987        pub const _10: Self = Self::new(2);
3988
3989        #[doc = "Detect both edges"]
3990        pub const _11: Self = Self::new(3);
3991    }
3992    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
3993    pub struct Isel_SPEC;
3994    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
3995    impl Isel {
3996        #[doc = "Do not use as IRQn input pin"]
3997        pub const _0: Self = Self::new(0);
3998
3999        #[doc = "Use as IRQn input pin"]
4000        pub const _1: Self = Self::new(1);
4001    }
4002    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4003    pub struct Asel_SPEC;
4004    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
4005    impl Asel {
4006        #[doc = "Do not use as analog pin"]
4007        pub const _0: Self = Self::new(0);
4008
4009        #[doc = "Use as analog pin"]
4010        pub const _1: Self = Self::new(1);
4011    }
4012}
4013#[doc(hidden)]
4014#[derive(Copy, Clone, Eq, PartialEq)]
4015pub struct P109PfsBy_SPEC;
4016impl crate::sealed::RegSpec for P109PfsBy_SPEC {
4017    type DataType = u8;
4018}
4019
4020#[doc = "Port 109 Pin Function Select Register"]
4021pub type P109PfsBy = crate::RegValueT<P109PfsBy_SPEC>;
4022
4023impl P109PfsBy {
4024    #[doc = "Port Output Data"]
4025    #[inline(always)]
4026    pub fn podr(
4027        self,
4028    ) -> crate::common::RegisterField<
4029        0,
4030        0x1,
4031        1,
4032        0,
4033        p109pfs_by::Podr,
4034        p109pfs_by::Podr,
4035        P109PfsBy_SPEC,
4036        crate::common::RW,
4037    > {
4038        crate::common::RegisterField::<
4039            0,
4040            0x1,
4041            1,
4042            0,
4043            p109pfs_by::Podr,
4044            p109pfs_by::Podr,
4045            P109PfsBy_SPEC,
4046            crate::common::RW,
4047        >::from_register(self, 0)
4048    }
4049
4050    #[doc = "Port State"]
4051    #[inline(always)]
4052    pub fn pidr(
4053        self,
4054    ) -> crate::common::RegisterField<
4055        1,
4056        0x1,
4057        1,
4058        0,
4059        p109pfs_by::Pidr,
4060        p109pfs_by::Pidr,
4061        P109PfsBy_SPEC,
4062        crate::common::R,
4063    > {
4064        crate::common::RegisterField::<
4065            1,
4066            0x1,
4067            1,
4068            0,
4069            p109pfs_by::Pidr,
4070            p109pfs_by::Pidr,
4071            P109PfsBy_SPEC,
4072            crate::common::R,
4073        >::from_register(self, 0)
4074    }
4075
4076    #[doc = "Port Direction"]
4077    #[inline(always)]
4078    pub fn pdr(
4079        self,
4080    ) -> crate::common::RegisterField<
4081        2,
4082        0x1,
4083        1,
4084        0,
4085        p109pfs_by::Pdr,
4086        p109pfs_by::Pdr,
4087        P109PfsBy_SPEC,
4088        crate::common::RW,
4089    > {
4090        crate::common::RegisterField::<
4091            2,
4092            0x1,
4093            1,
4094            0,
4095            p109pfs_by::Pdr,
4096            p109pfs_by::Pdr,
4097            P109PfsBy_SPEC,
4098            crate::common::RW,
4099        >::from_register(self, 0)
4100    }
4101
4102    #[doc = "Pull-up Control"]
4103    #[inline(always)]
4104    pub fn pcr(
4105        self,
4106    ) -> crate::common::RegisterField<
4107        4,
4108        0x1,
4109        1,
4110        0,
4111        p109pfs_by::Pcr,
4112        p109pfs_by::Pcr,
4113        P109PfsBy_SPEC,
4114        crate::common::RW,
4115    > {
4116        crate::common::RegisterField::<
4117            4,
4118            0x1,
4119            1,
4120            0,
4121            p109pfs_by::Pcr,
4122            p109pfs_by::Pcr,
4123            P109PfsBy_SPEC,
4124            crate::common::RW,
4125        >::from_register(self, 0)
4126    }
4127
4128    #[doc = "N-Channel Open-Drain Control"]
4129    #[inline(always)]
4130    pub fn ncodr(
4131        self,
4132    ) -> crate::common::RegisterField<
4133        6,
4134        0x1,
4135        1,
4136        0,
4137        p109pfs_by::Ncodr,
4138        p109pfs_by::Ncodr,
4139        P109PfsBy_SPEC,
4140        crate::common::RW,
4141    > {
4142        crate::common::RegisterField::<
4143            6,
4144            0x1,
4145            1,
4146            0,
4147            p109pfs_by::Ncodr,
4148            p109pfs_by::Ncodr,
4149            P109PfsBy_SPEC,
4150            crate::common::RW,
4151        >::from_register(self, 0)
4152    }
4153}
4154impl ::core::default::Default for P109PfsBy {
4155    #[inline(always)]
4156    fn default() -> P109PfsBy {
4157        <crate::RegValueT<P109PfsBy_SPEC> as RegisterValue<_>>::new(0)
4158    }
4159}
4160pub mod p109pfs_by {
4161
4162    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4163    pub struct Podr_SPEC;
4164    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4165    impl Podr {
4166        #[doc = "Output low"]
4167        pub const _0: Self = Self::new(0);
4168
4169        #[doc = "Output high"]
4170        pub const _1: Self = Self::new(1);
4171    }
4172    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4173    pub struct Pidr_SPEC;
4174    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4175    impl Pidr {
4176        #[doc = "Low level"]
4177        pub const _0: Self = Self::new(0);
4178
4179        #[doc = "High level"]
4180        pub const _1: Self = Self::new(1);
4181    }
4182    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4183    pub struct Pdr_SPEC;
4184    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4185    impl Pdr {
4186        #[doc = "Input (functions as an input pin)"]
4187        pub const _0: Self = Self::new(0);
4188
4189        #[doc = "Output (functions as an output pin)"]
4190        pub const _1: Self = Self::new(1);
4191    }
4192    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4193    pub struct Pcr_SPEC;
4194    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4195    impl Pcr {
4196        #[doc = "Disable input pull-up"]
4197        pub const _0: Self = Self::new(0);
4198
4199        #[doc = "Enable input pull-up"]
4200        pub const _1: Self = Self::new(1);
4201    }
4202    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4203    pub struct Ncodr_SPEC;
4204    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4205    impl Ncodr {
4206        #[doc = "Output CMOS"]
4207        pub const _0: Self = Self::new(0);
4208
4209        #[doc = "Output NMOS open-drain"]
4210        pub const _1: Self = Self::new(1);
4211    }
4212}
4213#[doc(hidden)]
4214#[derive(Copy, Clone, Eq, PartialEq)]
4215pub struct P1Pfs_SPEC;
4216impl crate::sealed::RegSpec for P1Pfs_SPEC {
4217    type DataType = u32;
4218}
4219
4220#[doc = "Port 1%s Pin Function Select Register"]
4221pub type P1Pfs = crate::RegValueT<P1Pfs_SPEC>;
4222
4223impl P1Pfs {
4224    #[doc = "Port Output Data"]
4225    #[inline(always)]
4226    pub fn podr(
4227        self,
4228    ) -> crate::common::RegisterField<
4229        0,
4230        0x1,
4231        1,
4232        0,
4233        p1pfs::Podr,
4234        p1pfs::Podr,
4235        P1Pfs_SPEC,
4236        crate::common::RW,
4237    > {
4238        crate::common::RegisterField::<
4239            0,
4240            0x1,
4241            1,
4242            0,
4243            p1pfs::Podr,
4244            p1pfs::Podr,
4245            P1Pfs_SPEC,
4246            crate::common::RW,
4247        >::from_register(self, 0)
4248    }
4249
4250    #[doc = "Port State"]
4251    #[inline(always)]
4252    pub fn pidr(
4253        self,
4254    ) -> crate::common::RegisterField<
4255        1,
4256        0x1,
4257        1,
4258        0,
4259        p1pfs::Pidr,
4260        p1pfs::Pidr,
4261        P1Pfs_SPEC,
4262        crate::common::R,
4263    > {
4264        crate::common::RegisterField::<
4265            1,
4266            0x1,
4267            1,
4268            0,
4269            p1pfs::Pidr,
4270            p1pfs::Pidr,
4271            P1Pfs_SPEC,
4272            crate::common::R,
4273        >::from_register(self, 0)
4274    }
4275
4276    #[doc = "Port Direction"]
4277    #[inline(always)]
4278    pub fn pdr(
4279        self,
4280    ) -> crate::common::RegisterField<
4281        2,
4282        0x1,
4283        1,
4284        0,
4285        p1pfs::Pdr,
4286        p1pfs::Pdr,
4287        P1Pfs_SPEC,
4288        crate::common::RW,
4289    > {
4290        crate::common::RegisterField::<
4291            2,
4292            0x1,
4293            1,
4294            0,
4295            p1pfs::Pdr,
4296            p1pfs::Pdr,
4297            P1Pfs_SPEC,
4298            crate::common::RW,
4299        >::from_register(self, 0)
4300    }
4301
4302    #[doc = "Pull-up Control"]
4303    #[inline(always)]
4304    pub fn pcr(
4305        self,
4306    ) -> crate::common::RegisterField<
4307        4,
4308        0x1,
4309        1,
4310        0,
4311        p1pfs::Pcr,
4312        p1pfs::Pcr,
4313        P1Pfs_SPEC,
4314        crate::common::RW,
4315    > {
4316        crate::common::RegisterField::<
4317            4,
4318            0x1,
4319            1,
4320            0,
4321            p1pfs::Pcr,
4322            p1pfs::Pcr,
4323            P1Pfs_SPEC,
4324            crate::common::RW,
4325        >::from_register(self, 0)
4326    }
4327
4328    #[doc = "N-Channel Open-Drain Control"]
4329    #[inline(always)]
4330    pub fn ncodr(
4331        self,
4332    ) -> crate::common::RegisterField<
4333        6,
4334        0x1,
4335        1,
4336        0,
4337        p1pfs::Ncodr,
4338        p1pfs::Ncodr,
4339        P1Pfs_SPEC,
4340        crate::common::RW,
4341    > {
4342        crate::common::RegisterField::<
4343            6,
4344            0x1,
4345            1,
4346            0,
4347            p1pfs::Ncodr,
4348            p1pfs::Ncodr,
4349            P1Pfs_SPEC,
4350            crate::common::RW,
4351        >::from_register(self, 0)
4352    }
4353
4354    #[doc = "Event on Falling/Event on Rising"]
4355    #[inline(always)]
4356    pub fn eofr(
4357        self,
4358    ) -> crate::common::RegisterField<
4359        12,
4360        0x3,
4361        1,
4362        0,
4363        p1pfs::Eofr,
4364        p1pfs::Eofr,
4365        P1Pfs_SPEC,
4366        crate::common::RW,
4367    > {
4368        crate::common::RegisterField::<
4369            12,
4370            0x3,
4371            1,
4372            0,
4373            p1pfs::Eofr,
4374            p1pfs::Eofr,
4375            P1Pfs_SPEC,
4376            crate::common::RW,
4377        >::from_register(self, 0)
4378    }
4379
4380    #[doc = "IRQ Input Enable"]
4381    #[inline(always)]
4382    pub fn isel(
4383        self,
4384    ) -> crate::common::RegisterField<
4385        14,
4386        0x1,
4387        1,
4388        0,
4389        p1pfs::Isel,
4390        p1pfs::Isel,
4391        P1Pfs_SPEC,
4392        crate::common::RW,
4393    > {
4394        crate::common::RegisterField::<
4395            14,
4396            0x1,
4397            1,
4398            0,
4399            p1pfs::Isel,
4400            p1pfs::Isel,
4401            P1Pfs_SPEC,
4402            crate::common::RW,
4403        >::from_register(self, 0)
4404    }
4405
4406    #[doc = "Analog Input Enable"]
4407    #[inline(always)]
4408    pub fn asel(
4409        self,
4410    ) -> crate::common::RegisterField<
4411        15,
4412        0x1,
4413        1,
4414        0,
4415        p1pfs::Asel,
4416        p1pfs::Asel,
4417        P1Pfs_SPEC,
4418        crate::common::RW,
4419    > {
4420        crate::common::RegisterField::<
4421            15,
4422            0x1,
4423            1,
4424            0,
4425            p1pfs::Asel,
4426            p1pfs::Asel,
4427            P1Pfs_SPEC,
4428            crate::common::RW,
4429        >::from_register(self, 0)
4430    }
4431
4432    #[doc = "Port Mode Control"]
4433    #[inline(always)]
4434    pub fn pmr(
4435        self,
4436    ) -> crate::common::RegisterField<
4437        16,
4438        0x1,
4439        1,
4440        0,
4441        p1pfs::Pmr,
4442        p1pfs::Pmr,
4443        P1Pfs_SPEC,
4444        crate::common::RW,
4445    > {
4446        crate::common::RegisterField::<
4447            16,
4448            0x1,
4449            1,
4450            0,
4451            p1pfs::Pmr,
4452            p1pfs::Pmr,
4453            P1Pfs_SPEC,
4454            crate::common::RW,
4455        >::from_register(self, 0)
4456    }
4457
4458    #[doc = "Peripheral Select"]
4459    #[inline(always)]
4460    pub fn psel(
4461        self,
4462    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P1Pfs_SPEC, crate::common::RW> {
4463        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P1Pfs_SPEC,crate::common::RW>::from_register(self,0)
4464    }
4465}
4466impl ::core::default::Default for P1Pfs {
4467    #[inline(always)]
4468    fn default() -> P1Pfs {
4469        <crate::RegValueT<P1Pfs_SPEC> as RegisterValue<_>>::new(0)
4470    }
4471}
4472pub mod p1pfs {
4473
4474    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4475    pub struct Podr_SPEC;
4476    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4477    impl Podr {
4478        #[doc = "Output low"]
4479        pub const _0: Self = Self::new(0);
4480
4481        #[doc = "Output high"]
4482        pub const _1: Self = Self::new(1);
4483    }
4484    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4485    pub struct Pidr_SPEC;
4486    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4487    impl Pidr {
4488        #[doc = "Low level"]
4489        pub const _0: Self = Self::new(0);
4490
4491        #[doc = "High level"]
4492        pub const _1: Self = Self::new(1);
4493    }
4494    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4495    pub struct Pdr_SPEC;
4496    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4497    impl Pdr {
4498        #[doc = "Input (functions as an input pin)"]
4499        pub const _0: Self = Self::new(0);
4500
4501        #[doc = "Output (functions as an output pin)"]
4502        pub const _1: Self = Self::new(1);
4503    }
4504    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4505    pub struct Pcr_SPEC;
4506    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4507    impl Pcr {
4508        #[doc = "Disable input pull-up"]
4509        pub const _0: Self = Self::new(0);
4510
4511        #[doc = "Enable input pull-up"]
4512        pub const _1: Self = Self::new(1);
4513    }
4514    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4515    pub struct Ncodr_SPEC;
4516    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4517    impl Ncodr {
4518        #[doc = "Output CMOS"]
4519        pub const _0: Self = Self::new(0);
4520
4521        #[doc = "Output NMOS open-drain"]
4522        pub const _1: Self = Self::new(1);
4523    }
4524    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4525    pub struct Eofr_SPEC;
4526    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
4527    impl Eofr {
4528        #[doc = "Don\'t care"]
4529        pub const _00: Self = Self::new(0);
4530
4531        #[doc = "Detect rising edge"]
4532        pub const _01: Self = Self::new(1);
4533
4534        #[doc = "Detect falling edge"]
4535        pub const _10: Self = Self::new(2);
4536
4537        #[doc = "Detect both edges"]
4538        pub const _11: Self = Self::new(3);
4539    }
4540    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4541    pub struct Isel_SPEC;
4542    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
4543    impl Isel {
4544        #[doc = "Do not use as IRQn input pin"]
4545        pub const _0: Self = Self::new(0);
4546
4547        #[doc = "Use as IRQn input pin"]
4548        pub const _1: Self = Self::new(1);
4549    }
4550    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4551    pub struct Asel_SPEC;
4552    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
4553    impl Asel {
4554        #[doc = "Do not use as analog pin"]
4555        pub const _0: Self = Self::new(0);
4556
4557        #[doc = "Use as analog pin"]
4558        pub const _1: Self = Self::new(1);
4559    }
4560    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4561    pub struct Pmr_SPEC;
4562    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
4563    impl Pmr {
4564        #[doc = "Use as general I/O pin"]
4565        pub const _0: Self = Self::new(0);
4566
4567        #[doc = "Use as I/O port for peripheral functions"]
4568        pub const _1: Self = Self::new(1);
4569    }
4570}
4571#[doc(hidden)]
4572#[derive(Copy, Clone, Eq, PartialEq)]
4573pub struct P1PfsHa_SPEC;
4574impl crate::sealed::RegSpec for P1PfsHa_SPEC {
4575    type DataType = u16;
4576}
4577
4578#[doc = "Port 1%s Pin Function Select Register"]
4579pub type P1PfsHa = crate::RegValueT<P1PfsHa_SPEC>;
4580
4581impl P1PfsHa {
4582    #[doc = "Port Output Data"]
4583    #[inline(always)]
4584    pub fn podr(
4585        self,
4586    ) -> crate::common::RegisterField<
4587        0,
4588        0x1,
4589        1,
4590        0,
4591        p1pfs_ha::Podr,
4592        p1pfs_ha::Podr,
4593        P1PfsHa_SPEC,
4594        crate::common::RW,
4595    > {
4596        crate::common::RegisterField::<
4597            0,
4598            0x1,
4599            1,
4600            0,
4601            p1pfs_ha::Podr,
4602            p1pfs_ha::Podr,
4603            P1PfsHa_SPEC,
4604            crate::common::RW,
4605        >::from_register(self, 0)
4606    }
4607
4608    #[doc = "Port State"]
4609    #[inline(always)]
4610    pub fn pidr(
4611        self,
4612    ) -> crate::common::RegisterField<
4613        1,
4614        0x1,
4615        1,
4616        0,
4617        p1pfs_ha::Pidr,
4618        p1pfs_ha::Pidr,
4619        P1PfsHa_SPEC,
4620        crate::common::R,
4621    > {
4622        crate::common::RegisterField::<
4623            1,
4624            0x1,
4625            1,
4626            0,
4627            p1pfs_ha::Pidr,
4628            p1pfs_ha::Pidr,
4629            P1PfsHa_SPEC,
4630            crate::common::R,
4631        >::from_register(self, 0)
4632    }
4633
4634    #[doc = "Port Direction"]
4635    #[inline(always)]
4636    pub fn pdr(
4637        self,
4638    ) -> crate::common::RegisterField<
4639        2,
4640        0x1,
4641        1,
4642        0,
4643        p1pfs_ha::Pdr,
4644        p1pfs_ha::Pdr,
4645        P1PfsHa_SPEC,
4646        crate::common::RW,
4647    > {
4648        crate::common::RegisterField::<
4649            2,
4650            0x1,
4651            1,
4652            0,
4653            p1pfs_ha::Pdr,
4654            p1pfs_ha::Pdr,
4655            P1PfsHa_SPEC,
4656            crate::common::RW,
4657        >::from_register(self, 0)
4658    }
4659
4660    #[doc = "Pull-up Control"]
4661    #[inline(always)]
4662    pub fn pcr(
4663        self,
4664    ) -> crate::common::RegisterField<
4665        4,
4666        0x1,
4667        1,
4668        0,
4669        p1pfs_ha::Pcr,
4670        p1pfs_ha::Pcr,
4671        P1PfsHa_SPEC,
4672        crate::common::RW,
4673    > {
4674        crate::common::RegisterField::<
4675            4,
4676            0x1,
4677            1,
4678            0,
4679            p1pfs_ha::Pcr,
4680            p1pfs_ha::Pcr,
4681            P1PfsHa_SPEC,
4682            crate::common::RW,
4683        >::from_register(self, 0)
4684    }
4685
4686    #[doc = "N-Channel Open-Drain Control"]
4687    #[inline(always)]
4688    pub fn ncodr(
4689        self,
4690    ) -> crate::common::RegisterField<
4691        6,
4692        0x1,
4693        1,
4694        0,
4695        p1pfs_ha::Ncodr,
4696        p1pfs_ha::Ncodr,
4697        P1PfsHa_SPEC,
4698        crate::common::RW,
4699    > {
4700        crate::common::RegisterField::<
4701            6,
4702            0x1,
4703            1,
4704            0,
4705            p1pfs_ha::Ncodr,
4706            p1pfs_ha::Ncodr,
4707            P1PfsHa_SPEC,
4708            crate::common::RW,
4709        >::from_register(self, 0)
4710    }
4711
4712    #[doc = "Event on Falling/Event on Rising"]
4713    #[inline(always)]
4714    pub fn eofr(
4715        self,
4716    ) -> crate::common::RegisterField<
4717        12,
4718        0x3,
4719        1,
4720        0,
4721        p1pfs_ha::Eofr,
4722        p1pfs_ha::Eofr,
4723        P1PfsHa_SPEC,
4724        crate::common::RW,
4725    > {
4726        crate::common::RegisterField::<
4727            12,
4728            0x3,
4729            1,
4730            0,
4731            p1pfs_ha::Eofr,
4732            p1pfs_ha::Eofr,
4733            P1PfsHa_SPEC,
4734            crate::common::RW,
4735        >::from_register(self, 0)
4736    }
4737
4738    #[doc = "IRQ Input Enable"]
4739    #[inline(always)]
4740    pub fn isel(
4741        self,
4742    ) -> crate::common::RegisterField<
4743        14,
4744        0x1,
4745        1,
4746        0,
4747        p1pfs_ha::Isel,
4748        p1pfs_ha::Isel,
4749        P1PfsHa_SPEC,
4750        crate::common::RW,
4751    > {
4752        crate::common::RegisterField::<
4753            14,
4754            0x1,
4755            1,
4756            0,
4757            p1pfs_ha::Isel,
4758            p1pfs_ha::Isel,
4759            P1PfsHa_SPEC,
4760            crate::common::RW,
4761        >::from_register(self, 0)
4762    }
4763
4764    #[doc = "Analog Input Enable"]
4765    #[inline(always)]
4766    pub fn asel(
4767        self,
4768    ) -> crate::common::RegisterField<
4769        15,
4770        0x1,
4771        1,
4772        0,
4773        p1pfs_ha::Asel,
4774        p1pfs_ha::Asel,
4775        P1PfsHa_SPEC,
4776        crate::common::RW,
4777    > {
4778        crate::common::RegisterField::<
4779            15,
4780            0x1,
4781            1,
4782            0,
4783            p1pfs_ha::Asel,
4784            p1pfs_ha::Asel,
4785            P1PfsHa_SPEC,
4786            crate::common::RW,
4787        >::from_register(self, 0)
4788    }
4789}
4790impl ::core::default::Default for P1PfsHa {
4791    #[inline(always)]
4792    fn default() -> P1PfsHa {
4793        <crate::RegValueT<P1PfsHa_SPEC> as RegisterValue<_>>::new(0)
4794    }
4795}
4796pub mod p1pfs_ha {
4797
4798    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4799    pub struct Podr_SPEC;
4800    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
4801    impl Podr {
4802        #[doc = "Output low"]
4803        pub const _0: Self = Self::new(0);
4804
4805        #[doc = "Output high"]
4806        pub const _1: Self = Self::new(1);
4807    }
4808    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4809    pub struct Pidr_SPEC;
4810    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
4811    impl Pidr {
4812        #[doc = "Low level"]
4813        pub const _0: Self = Self::new(0);
4814
4815        #[doc = "High level"]
4816        pub const _1: Self = Self::new(1);
4817    }
4818    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4819    pub struct Pdr_SPEC;
4820    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
4821    impl Pdr {
4822        #[doc = "Input (functions as an input pin)"]
4823        pub const _0: Self = Self::new(0);
4824
4825        #[doc = "Output (functions as an output pin)"]
4826        pub const _1: Self = Self::new(1);
4827    }
4828    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4829    pub struct Pcr_SPEC;
4830    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
4831    impl Pcr {
4832        #[doc = "Disable input pull-up"]
4833        pub const _0: Self = Self::new(0);
4834
4835        #[doc = "Enable input pull-up"]
4836        pub const _1: Self = Self::new(1);
4837    }
4838    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4839    pub struct Ncodr_SPEC;
4840    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
4841    impl Ncodr {
4842        #[doc = "Output CMOS"]
4843        pub const _0: Self = Self::new(0);
4844
4845        #[doc = "Output NMOS open-drain"]
4846        pub const _1: Self = Self::new(1);
4847    }
4848    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4849    pub struct Eofr_SPEC;
4850    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
4851    impl Eofr {
4852        #[doc = "Don\'t care"]
4853        pub const _00: Self = Self::new(0);
4854
4855        #[doc = "Detect rising edge"]
4856        pub const _01: Self = Self::new(1);
4857
4858        #[doc = "Detect falling edge"]
4859        pub const _10: Self = Self::new(2);
4860
4861        #[doc = "Detect both edges"]
4862        pub const _11: Self = Self::new(3);
4863    }
4864    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4865    pub struct Isel_SPEC;
4866    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
4867    impl Isel {
4868        #[doc = "Do not use as IRQn input pin"]
4869        pub const _0: Self = Self::new(0);
4870
4871        #[doc = "Use as IRQn input pin"]
4872        pub const _1: Self = Self::new(1);
4873    }
4874    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
4875    pub struct Asel_SPEC;
4876    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
4877    impl Asel {
4878        #[doc = "Do not use as analog pin"]
4879        pub const _0: Self = Self::new(0);
4880
4881        #[doc = "Use as analog pin"]
4882        pub const _1: Self = Self::new(1);
4883    }
4884}
4885#[doc(hidden)]
4886#[derive(Copy, Clone, Eq, PartialEq)]
4887pub struct P1PfsBy_SPEC;
4888impl crate::sealed::RegSpec for P1PfsBy_SPEC {
4889    type DataType = u8;
4890}
4891
4892#[doc = "Port 1%s Pin Function Select Register"]
4893pub type P1PfsBy = crate::RegValueT<P1PfsBy_SPEC>;
4894
4895impl P1PfsBy {
4896    #[doc = "Port Output Data"]
4897    #[inline(always)]
4898    pub fn podr(
4899        self,
4900    ) -> crate::common::RegisterField<
4901        0,
4902        0x1,
4903        1,
4904        0,
4905        p1pfs_by::Podr,
4906        p1pfs_by::Podr,
4907        P1PfsBy_SPEC,
4908        crate::common::RW,
4909    > {
4910        crate::common::RegisterField::<
4911            0,
4912            0x1,
4913            1,
4914            0,
4915            p1pfs_by::Podr,
4916            p1pfs_by::Podr,
4917            P1PfsBy_SPEC,
4918            crate::common::RW,
4919        >::from_register(self, 0)
4920    }
4921
4922    #[doc = "Port State"]
4923    #[inline(always)]
4924    pub fn pidr(
4925        self,
4926    ) -> crate::common::RegisterField<
4927        1,
4928        0x1,
4929        1,
4930        0,
4931        p1pfs_by::Pidr,
4932        p1pfs_by::Pidr,
4933        P1PfsBy_SPEC,
4934        crate::common::R,
4935    > {
4936        crate::common::RegisterField::<
4937            1,
4938            0x1,
4939            1,
4940            0,
4941            p1pfs_by::Pidr,
4942            p1pfs_by::Pidr,
4943            P1PfsBy_SPEC,
4944            crate::common::R,
4945        >::from_register(self, 0)
4946    }
4947
4948    #[doc = "Port Direction"]
4949    #[inline(always)]
4950    pub fn pdr(
4951        self,
4952    ) -> crate::common::RegisterField<
4953        2,
4954        0x1,
4955        1,
4956        0,
4957        p1pfs_by::Pdr,
4958        p1pfs_by::Pdr,
4959        P1PfsBy_SPEC,
4960        crate::common::RW,
4961    > {
4962        crate::common::RegisterField::<
4963            2,
4964            0x1,
4965            1,
4966            0,
4967            p1pfs_by::Pdr,
4968            p1pfs_by::Pdr,
4969            P1PfsBy_SPEC,
4970            crate::common::RW,
4971        >::from_register(self, 0)
4972    }
4973
4974    #[doc = "Pull-up Control"]
4975    #[inline(always)]
4976    pub fn pcr(
4977        self,
4978    ) -> crate::common::RegisterField<
4979        4,
4980        0x1,
4981        1,
4982        0,
4983        p1pfs_by::Pcr,
4984        p1pfs_by::Pcr,
4985        P1PfsBy_SPEC,
4986        crate::common::RW,
4987    > {
4988        crate::common::RegisterField::<
4989            4,
4990            0x1,
4991            1,
4992            0,
4993            p1pfs_by::Pcr,
4994            p1pfs_by::Pcr,
4995            P1PfsBy_SPEC,
4996            crate::common::RW,
4997        >::from_register(self, 0)
4998    }
4999
5000    #[doc = "N-Channel Open-Drain Control"]
5001    #[inline(always)]
5002    pub fn ncodr(
5003        self,
5004    ) -> crate::common::RegisterField<
5005        6,
5006        0x1,
5007        1,
5008        0,
5009        p1pfs_by::Ncodr,
5010        p1pfs_by::Ncodr,
5011        P1PfsBy_SPEC,
5012        crate::common::RW,
5013    > {
5014        crate::common::RegisterField::<
5015            6,
5016            0x1,
5017            1,
5018            0,
5019            p1pfs_by::Ncodr,
5020            p1pfs_by::Ncodr,
5021            P1PfsBy_SPEC,
5022            crate::common::RW,
5023        >::from_register(self, 0)
5024    }
5025}
5026impl ::core::default::Default for P1PfsBy {
5027    #[inline(always)]
5028    fn default() -> P1PfsBy {
5029        <crate::RegValueT<P1PfsBy_SPEC> as RegisterValue<_>>::new(0)
5030    }
5031}
5032pub mod p1pfs_by {
5033
5034    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5035    pub struct Podr_SPEC;
5036    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
5037    impl Podr {
5038        #[doc = "Output low"]
5039        pub const _0: Self = Self::new(0);
5040
5041        #[doc = "Output high"]
5042        pub const _1: Self = Self::new(1);
5043    }
5044    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5045    pub struct Pidr_SPEC;
5046    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
5047    impl Pidr {
5048        #[doc = "Low level"]
5049        pub const _0: Self = Self::new(0);
5050
5051        #[doc = "High level"]
5052        pub const _1: Self = Self::new(1);
5053    }
5054    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5055    pub struct Pdr_SPEC;
5056    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
5057    impl Pdr {
5058        #[doc = "Input (functions as an input pin)"]
5059        pub const _0: Self = Self::new(0);
5060
5061        #[doc = "Output (functions as an output pin)"]
5062        pub const _1: Self = Self::new(1);
5063    }
5064    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5065    pub struct Pcr_SPEC;
5066    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
5067    impl Pcr {
5068        #[doc = "Disable input pull-up"]
5069        pub const _0: Self = Self::new(0);
5070
5071        #[doc = "Enable input pull-up"]
5072        pub const _1: Self = Self::new(1);
5073    }
5074    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5075    pub struct Ncodr_SPEC;
5076    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
5077    impl Ncodr {
5078        #[doc = "Output CMOS"]
5079        pub const _0: Self = Self::new(0);
5080
5081        #[doc = "Output NMOS open-drain"]
5082        pub const _1: Self = Self::new(1);
5083    }
5084}
5085#[doc(hidden)]
5086#[derive(Copy, Clone, Eq, PartialEq)]
5087pub struct P200Pfs_SPEC;
5088impl crate::sealed::RegSpec for P200Pfs_SPEC {
5089    type DataType = u32;
5090}
5091
5092#[doc = "Port 200 Pin Function Select Register"]
5093pub type P200Pfs = crate::RegValueT<P200Pfs_SPEC>;
5094
5095impl P200Pfs {
5096    #[doc = "Port Output Data"]
5097    #[inline(always)]
5098    pub fn podr(
5099        self,
5100    ) -> crate::common::RegisterField<
5101        0,
5102        0x1,
5103        1,
5104        0,
5105        p200pfs::Podr,
5106        p200pfs::Podr,
5107        P200Pfs_SPEC,
5108        crate::common::RW,
5109    > {
5110        crate::common::RegisterField::<
5111            0,
5112            0x1,
5113            1,
5114            0,
5115            p200pfs::Podr,
5116            p200pfs::Podr,
5117            P200Pfs_SPEC,
5118            crate::common::RW,
5119        >::from_register(self, 0)
5120    }
5121
5122    #[doc = "Port State"]
5123    #[inline(always)]
5124    pub fn pidr(
5125        self,
5126    ) -> crate::common::RegisterField<
5127        1,
5128        0x1,
5129        1,
5130        0,
5131        p200pfs::Pidr,
5132        p200pfs::Pidr,
5133        P200Pfs_SPEC,
5134        crate::common::R,
5135    > {
5136        crate::common::RegisterField::<
5137            1,
5138            0x1,
5139            1,
5140            0,
5141            p200pfs::Pidr,
5142            p200pfs::Pidr,
5143            P200Pfs_SPEC,
5144            crate::common::R,
5145        >::from_register(self, 0)
5146    }
5147
5148    #[doc = "Port Direction"]
5149    #[inline(always)]
5150    pub fn pdr(
5151        self,
5152    ) -> crate::common::RegisterField<
5153        2,
5154        0x1,
5155        1,
5156        0,
5157        p200pfs::Pdr,
5158        p200pfs::Pdr,
5159        P200Pfs_SPEC,
5160        crate::common::RW,
5161    > {
5162        crate::common::RegisterField::<
5163            2,
5164            0x1,
5165            1,
5166            0,
5167            p200pfs::Pdr,
5168            p200pfs::Pdr,
5169            P200Pfs_SPEC,
5170            crate::common::RW,
5171        >::from_register(self, 0)
5172    }
5173
5174    #[doc = "Pull-up Control"]
5175    #[inline(always)]
5176    pub fn pcr(
5177        self,
5178    ) -> crate::common::RegisterField<
5179        4,
5180        0x1,
5181        1,
5182        0,
5183        p200pfs::Pcr,
5184        p200pfs::Pcr,
5185        P200Pfs_SPEC,
5186        crate::common::RW,
5187    > {
5188        crate::common::RegisterField::<
5189            4,
5190            0x1,
5191            1,
5192            0,
5193            p200pfs::Pcr,
5194            p200pfs::Pcr,
5195            P200Pfs_SPEC,
5196            crate::common::RW,
5197        >::from_register(self, 0)
5198    }
5199
5200    #[doc = "N-Channel Open-Drain Control"]
5201    #[inline(always)]
5202    pub fn ncodr(
5203        self,
5204    ) -> crate::common::RegisterField<
5205        6,
5206        0x1,
5207        1,
5208        0,
5209        p200pfs::Ncodr,
5210        p200pfs::Ncodr,
5211        P200Pfs_SPEC,
5212        crate::common::RW,
5213    > {
5214        crate::common::RegisterField::<
5215            6,
5216            0x1,
5217            1,
5218            0,
5219            p200pfs::Ncodr,
5220            p200pfs::Ncodr,
5221            P200Pfs_SPEC,
5222            crate::common::RW,
5223        >::from_register(self, 0)
5224    }
5225
5226    #[doc = "Event on Falling/Event on Rising"]
5227    #[inline(always)]
5228    pub fn eofr(
5229        self,
5230    ) -> crate::common::RegisterField<
5231        12,
5232        0x3,
5233        1,
5234        0,
5235        p200pfs::Eofr,
5236        p200pfs::Eofr,
5237        P200Pfs_SPEC,
5238        crate::common::RW,
5239    > {
5240        crate::common::RegisterField::<
5241            12,
5242            0x3,
5243            1,
5244            0,
5245            p200pfs::Eofr,
5246            p200pfs::Eofr,
5247            P200Pfs_SPEC,
5248            crate::common::RW,
5249        >::from_register(self, 0)
5250    }
5251
5252    #[doc = "IRQ Input Enable"]
5253    #[inline(always)]
5254    pub fn isel(
5255        self,
5256    ) -> crate::common::RegisterField<
5257        14,
5258        0x1,
5259        1,
5260        0,
5261        p200pfs::Isel,
5262        p200pfs::Isel,
5263        P200Pfs_SPEC,
5264        crate::common::RW,
5265    > {
5266        crate::common::RegisterField::<
5267            14,
5268            0x1,
5269            1,
5270            0,
5271            p200pfs::Isel,
5272            p200pfs::Isel,
5273            P200Pfs_SPEC,
5274            crate::common::RW,
5275        >::from_register(self, 0)
5276    }
5277
5278    #[doc = "Analog Input Enable"]
5279    #[inline(always)]
5280    pub fn asel(
5281        self,
5282    ) -> crate::common::RegisterField<
5283        15,
5284        0x1,
5285        1,
5286        0,
5287        p200pfs::Asel,
5288        p200pfs::Asel,
5289        P200Pfs_SPEC,
5290        crate::common::RW,
5291    > {
5292        crate::common::RegisterField::<
5293            15,
5294            0x1,
5295            1,
5296            0,
5297            p200pfs::Asel,
5298            p200pfs::Asel,
5299            P200Pfs_SPEC,
5300            crate::common::RW,
5301        >::from_register(self, 0)
5302    }
5303
5304    #[doc = "Port Mode Control"]
5305    #[inline(always)]
5306    pub fn pmr(
5307        self,
5308    ) -> crate::common::RegisterField<
5309        16,
5310        0x1,
5311        1,
5312        0,
5313        p200pfs::Pmr,
5314        p200pfs::Pmr,
5315        P200Pfs_SPEC,
5316        crate::common::RW,
5317    > {
5318        crate::common::RegisterField::<
5319            16,
5320            0x1,
5321            1,
5322            0,
5323            p200pfs::Pmr,
5324            p200pfs::Pmr,
5325            P200Pfs_SPEC,
5326            crate::common::RW,
5327        >::from_register(self, 0)
5328    }
5329
5330    #[doc = "Peripheral Select"]
5331    #[inline(always)]
5332    pub fn psel(
5333        self,
5334    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P200Pfs_SPEC, crate::common::RW> {
5335        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P200Pfs_SPEC,crate::common::RW>::from_register(self,0)
5336    }
5337}
5338impl ::core::default::Default for P200Pfs {
5339    #[inline(always)]
5340    fn default() -> P200Pfs {
5341        <crate::RegValueT<P200Pfs_SPEC> as RegisterValue<_>>::new(0)
5342    }
5343}
5344pub mod p200pfs {
5345
5346    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5347    pub struct Podr_SPEC;
5348    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
5349    impl Podr {
5350        #[doc = "Output low"]
5351        pub const _0: Self = Self::new(0);
5352
5353        #[doc = "Output high"]
5354        pub const _1: Self = Self::new(1);
5355    }
5356    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5357    pub struct Pidr_SPEC;
5358    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
5359    impl Pidr {
5360        #[doc = "Low level"]
5361        pub const _0: Self = Self::new(0);
5362
5363        #[doc = "High level"]
5364        pub const _1: Self = Self::new(1);
5365    }
5366    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5367    pub struct Pdr_SPEC;
5368    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
5369    impl Pdr {
5370        #[doc = "Input (functions as an input pin)"]
5371        pub const _0: Self = Self::new(0);
5372
5373        #[doc = "Output (functions as an output pin)"]
5374        pub const _1: Self = Self::new(1);
5375    }
5376    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5377    pub struct Pcr_SPEC;
5378    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
5379    impl Pcr {
5380        #[doc = "Disable input pull-up"]
5381        pub const _0: Self = Self::new(0);
5382
5383        #[doc = "Enable input pull-up"]
5384        pub const _1: Self = Self::new(1);
5385    }
5386    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5387    pub struct Ncodr_SPEC;
5388    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
5389    impl Ncodr {
5390        #[doc = "Output CMOS"]
5391        pub const _0: Self = Self::new(0);
5392
5393        #[doc = "Output NMOS open-drain"]
5394        pub const _1: Self = Self::new(1);
5395    }
5396    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5397    pub struct Eofr_SPEC;
5398    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
5399    impl Eofr {
5400        #[doc = "Don\'t care"]
5401        pub const _00: Self = Self::new(0);
5402
5403        #[doc = "Detect rising edge"]
5404        pub const _01: Self = Self::new(1);
5405
5406        #[doc = "Detect falling edge"]
5407        pub const _10: Self = Self::new(2);
5408
5409        #[doc = "Detect both edges"]
5410        pub const _11: Self = Self::new(3);
5411    }
5412    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5413    pub struct Isel_SPEC;
5414    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
5415    impl Isel {
5416        #[doc = "Do not use as IRQn input pin"]
5417        pub const _0: Self = Self::new(0);
5418
5419        #[doc = "Use as IRQn input pin"]
5420        pub const _1: Self = Self::new(1);
5421    }
5422    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5423    pub struct Asel_SPEC;
5424    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
5425    impl Asel {
5426        #[doc = "Do not use as analog pin"]
5427        pub const _0: Self = Self::new(0);
5428
5429        #[doc = "Use as analog pin"]
5430        pub const _1: Self = Self::new(1);
5431    }
5432    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5433    pub struct Pmr_SPEC;
5434    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
5435    impl Pmr {
5436        #[doc = "Use as general I/O pin"]
5437        pub const _0: Self = Self::new(0);
5438
5439        #[doc = "Use as I/O port for peripheral functions"]
5440        pub const _1: Self = Self::new(1);
5441    }
5442}
5443#[doc(hidden)]
5444#[derive(Copy, Clone, Eq, PartialEq)]
5445pub struct P200PfsHa_SPEC;
5446impl crate::sealed::RegSpec for P200PfsHa_SPEC {
5447    type DataType = u16;
5448}
5449
5450#[doc = "Port 200 Pin Function Select Register"]
5451pub type P200PfsHa = crate::RegValueT<P200PfsHa_SPEC>;
5452
5453impl P200PfsHa {
5454    #[doc = "Port Output Data"]
5455    #[inline(always)]
5456    pub fn podr(
5457        self,
5458    ) -> crate::common::RegisterField<
5459        0,
5460        0x1,
5461        1,
5462        0,
5463        p200pfs_ha::Podr,
5464        p200pfs_ha::Podr,
5465        P200PfsHa_SPEC,
5466        crate::common::RW,
5467    > {
5468        crate::common::RegisterField::<
5469            0,
5470            0x1,
5471            1,
5472            0,
5473            p200pfs_ha::Podr,
5474            p200pfs_ha::Podr,
5475            P200PfsHa_SPEC,
5476            crate::common::RW,
5477        >::from_register(self, 0)
5478    }
5479
5480    #[doc = "Port State"]
5481    #[inline(always)]
5482    pub fn pidr(
5483        self,
5484    ) -> crate::common::RegisterField<
5485        1,
5486        0x1,
5487        1,
5488        0,
5489        p200pfs_ha::Pidr,
5490        p200pfs_ha::Pidr,
5491        P200PfsHa_SPEC,
5492        crate::common::R,
5493    > {
5494        crate::common::RegisterField::<
5495            1,
5496            0x1,
5497            1,
5498            0,
5499            p200pfs_ha::Pidr,
5500            p200pfs_ha::Pidr,
5501            P200PfsHa_SPEC,
5502            crate::common::R,
5503        >::from_register(self, 0)
5504    }
5505
5506    #[doc = "Port Direction"]
5507    #[inline(always)]
5508    pub fn pdr(
5509        self,
5510    ) -> crate::common::RegisterField<
5511        2,
5512        0x1,
5513        1,
5514        0,
5515        p200pfs_ha::Pdr,
5516        p200pfs_ha::Pdr,
5517        P200PfsHa_SPEC,
5518        crate::common::RW,
5519    > {
5520        crate::common::RegisterField::<
5521            2,
5522            0x1,
5523            1,
5524            0,
5525            p200pfs_ha::Pdr,
5526            p200pfs_ha::Pdr,
5527            P200PfsHa_SPEC,
5528            crate::common::RW,
5529        >::from_register(self, 0)
5530    }
5531
5532    #[doc = "Pull-up Control"]
5533    #[inline(always)]
5534    pub fn pcr(
5535        self,
5536    ) -> crate::common::RegisterField<
5537        4,
5538        0x1,
5539        1,
5540        0,
5541        p200pfs_ha::Pcr,
5542        p200pfs_ha::Pcr,
5543        P200PfsHa_SPEC,
5544        crate::common::RW,
5545    > {
5546        crate::common::RegisterField::<
5547            4,
5548            0x1,
5549            1,
5550            0,
5551            p200pfs_ha::Pcr,
5552            p200pfs_ha::Pcr,
5553            P200PfsHa_SPEC,
5554            crate::common::RW,
5555        >::from_register(self, 0)
5556    }
5557
5558    #[doc = "N-Channel Open-Drain Control"]
5559    #[inline(always)]
5560    pub fn ncodr(
5561        self,
5562    ) -> crate::common::RegisterField<
5563        6,
5564        0x1,
5565        1,
5566        0,
5567        p200pfs_ha::Ncodr,
5568        p200pfs_ha::Ncodr,
5569        P200PfsHa_SPEC,
5570        crate::common::RW,
5571    > {
5572        crate::common::RegisterField::<
5573            6,
5574            0x1,
5575            1,
5576            0,
5577            p200pfs_ha::Ncodr,
5578            p200pfs_ha::Ncodr,
5579            P200PfsHa_SPEC,
5580            crate::common::RW,
5581        >::from_register(self, 0)
5582    }
5583
5584    #[doc = "Event on Falling/Event on Rising"]
5585    #[inline(always)]
5586    pub fn eofr(
5587        self,
5588    ) -> crate::common::RegisterField<
5589        12,
5590        0x3,
5591        1,
5592        0,
5593        p200pfs_ha::Eofr,
5594        p200pfs_ha::Eofr,
5595        P200PfsHa_SPEC,
5596        crate::common::RW,
5597    > {
5598        crate::common::RegisterField::<
5599            12,
5600            0x3,
5601            1,
5602            0,
5603            p200pfs_ha::Eofr,
5604            p200pfs_ha::Eofr,
5605            P200PfsHa_SPEC,
5606            crate::common::RW,
5607        >::from_register(self, 0)
5608    }
5609
5610    #[doc = "IRQ Input Enable"]
5611    #[inline(always)]
5612    pub fn isel(
5613        self,
5614    ) -> crate::common::RegisterField<
5615        14,
5616        0x1,
5617        1,
5618        0,
5619        p200pfs_ha::Isel,
5620        p200pfs_ha::Isel,
5621        P200PfsHa_SPEC,
5622        crate::common::RW,
5623    > {
5624        crate::common::RegisterField::<
5625            14,
5626            0x1,
5627            1,
5628            0,
5629            p200pfs_ha::Isel,
5630            p200pfs_ha::Isel,
5631            P200PfsHa_SPEC,
5632            crate::common::RW,
5633        >::from_register(self, 0)
5634    }
5635
5636    #[doc = "Analog Input Enable"]
5637    #[inline(always)]
5638    pub fn asel(
5639        self,
5640    ) -> crate::common::RegisterField<
5641        15,
5642        0x1,
5643        1,
5644        0,
5645        p200pfs_ha::Asel,
5646        p200pfs_ha::Asel,
5647        P200PfsHa_SPEC,
5648        crate::common::RW,
5649    > {
5650        crate::common::RegisterField::<
5651            15,
5652            0x1,
5653            1,
5654            0,
5655            p200pfs_ha::Asel,
5656            p200pfs_ha::Asel,
5657            P200PfsHa_SPEC,
5658            crate::common::RW,
5659        >::from_register(self, 0)
5660    }
5661}
5662impl ::core::default::Default for P200PfsHa {
5663    #[inline(always)]
5664    fn default() -> P200PfsHa {
5665        <crate::RegValueT<P200PfsHa_SPEC> as RegisterValue<_>>::new(0)
5666    }
5667}
5668pub mod p200pfs_ha {
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    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5721    pub struct Eofr_SPEC;
5722    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
5723    impl Eofr {
5724        #[doc = "Don\'t care"]
5725        pub const _00: Self = Self::new(0);
5726
5727        #[doc = "Detect rising edge"]
5728        pub const _01: Self = Self::new(1);
5729
5730        #[doc = "Detect falling edge"]
5731        pub const _10: Self = Self::new(2);
5732
5733        #[doc = "Detect both edges"]
5734        pub const _11: Self = Self::new(3);
5735    }
5736    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5737    pub struct Isel_SPEC;
5738    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
5739    impl Isel {
5740        #[doc = "Do not use as IRQn input pin"]
5741        pub const _0: Self = Self::new(0);
5742
5743        #[doc = "Use as IRQn input pin"]
5744        pub const _1: Self = Self::new(1);
5745    }
5746    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5747    pub struct Asel_SPEC;
5748    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
5749    impl Asel {
5750        #[doc = "Do not use as analog pin"]
5751        pub const _0: Self = Self::new(0);
5752
5753        #[doc = "Use as analog pin"]
5754        pub const _1: Self = Self::new(1);
5755    }
5756}
5757#[doc(hidden)]
5758#[derive(Copy, Clone, Eq, PartialEq)]
5759pub struct P200PfsBy_SPEC;
5760impl crate::sealed::RegSpec for P200PfsBy_SPEC {
5761    type DataType = u8;
5762}
5763
5764#[doc = "Port 200 Pin Function Select Register"]
5765pub type P200PfsBy = crate::RegValueT<P200PfsBy_SPEC>;
5766
5767impl P200PfsBy {
5768    #[doc = "Port Output Data"]
5769    #[inline(always)]
5770    pub fn podr(
5771        self,
5772    ) -> crate::common::RegisterField<
5773        0,
5774        0x1,
5775        1,
5776        0,
5777        p200pfs_by::Podr,
5778        p200pfs_by::Podr,
5779        P200PfsBy_SPEC,
5780        crate::common::RW,
5781    > {
5782        crate::common::RegisterField::<
5783            0,
5784            0x1,
5785            1,
5786            0,
5787            p200pfs_by::Podr,
5788            p200pfs_by::Podr,
5789            P200PfsBy_SPEC,
5790            crate::common::RW,
5791        >::from_register(self, 0)
5792    }
5793
5794    #[doc = "Port State"]
5795    #[inline(always)]
5796    pub fn pidr(
5797        self,
5798    ) -> crate::common::RegisterField<
5799        1,
5800        0x1,
5801        1,
5802        0,
5803        p200pfs_by::Pidr,
5804        p200pfs_by::Pidr,
5805        P200PfsBy_SPEC,
5806        crate::common::R,
5807    > {
5808        crate::common::RegisterField::<
5809            1,
5810            0x1,
5811            1,
5812            0,
5813            p200pfs_by::Pidr,
5814            p200pfs_by::Pidr,
5815            P200PfsBy_SPEC,
5816            crate::common::R,
5817        >::from_register(self, 0)
5818    }
5819
5820    #[doc = "Port Direction"]
5821    #[inline(always)]
5822    pub fn pdr(
5823        self,
5824    ) -> crate::common::RegisterField<
5825        2,
5826        0x1,
5827        1,
5828        0,
5829        p200pfs_by::Pdr,
5830        p200pfs_by::Pdr,
5831        P200PfsBy_SPEC,
5832        crate::common::RW,
5833    > {
5834        crate::common::RegisterField::<
5835            2,
5836            0x1,
5837            1,
5838            0,
5839            p200pfs_by::Pdr,
5840            p200pfs_by::Pdr,
5841            P200PfsBy_SPEC,
5842            crate::common::RW,
5843        >::from_register(self, 0)
5844    }
5845
5846    #[doc = "Pull-up Control"]
5847    #[inline(always)]
5848    pub fn pcr(
5849        self,
5850    ) -> crate::common::RegisterField<
5851        4,
5852        0x1,
5853        1,
5854        0,
5855        p200pfs_by::Pcr,
5856        p200pfs_by::Pcr,
5857        P200PfsBy_SPEC,
5858        crate::common::RW,
5859    > {
5860        crate::common::RegisterField::<
5861            4,
5862            0x1,
5863            1,
5864            0,
5865            p200pfs_by::Pcr,
5866            p200pfs_by::Pcr,
5867            P200PfsBy_SPEC,
5868            crate::common::RW,
5869        >::from_register(self, 0)
5870    }
5871
5872    #[doc = "N-Channel Open-Drain Control"]
5873    #[inline(always)]
5874    pub fn ncodr(
5875        self,
5876    ) -> crate::common::RegisterField<
5877        6,
5878        0x1,
5879        1,
5880        0,
5881        p200pfs_by::Ncodr,
5882        p200pfs_by::Ncodr,
5883        P200PfsBy_SPEC,
5884        crate::common::RW,
5885    > {
5886        crate::common::RegisterField::<
5887            6,
5888            0x1,
5889            1,
5890            0,
5891            p200pfs_by::Ncodr,
5892            p200pfs_by::Ncodr,
5893            P200PfsBy_SPEC,
5894            crate::common::RW,
5895        >::from_register(self, 0)
5896    }
5897}
5898impl ::core::default::Default for P200PfsBy {
5899    #[inline(always)]
5900    fn default() -> P200PfsBy {
5901        <crate::RegValueT<P200PfsBy_SPEC> as RegisterValue<_>>::new(0)
5902    }
5903}
5904pub mod p200pfs_by {
5905
5906    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5907    pub struct Podr_SPEC;
5908    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
5909    impl Podr {
5910        #[doc = "Output low"]
5911        pub const _0: Self = Self::new(0);
5912
5913        #[doc = "Output high"]
5914        pub const _1: Self = Self::new(1);
5915    }
5916    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5917    pub struct Pidr_SPEC;
5918    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
5919    impl Pidr {
5920        #[doc = "Low level"]
5921        pub const _0: Self = Self::new(0);
5922
5923        #[doc = "High level"]
5924        pub const _1: Self = Self::new(1);
5925    }
5926    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5927    pub struct Pdr_SPEC;
5928    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
5929    impl Pdr {
5930        #[doc = "Input (functions as an input pin)"]
5931        pub const _0: Self = Self::new(0);
5932
5933        #[doc = "Output (functions as an output pin)"]
5934        pub const _1: Self = Self::new(1);
5935    }
5936    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5937    pub struct Pcr_SPEC;
5938    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
5939    impl Pcr {
5940        #[doc = "Disable input pull-up"]
5941        pub const _0: Self = Self::new(0);
5942
5943        #[doc = "Enable input pull-up"]
5944        pub const _1: Self = Self::new(1);
5945    }
5946    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
5947    pub struct Ncodr_SPEC;
5948    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
5949    impl Ncodr {
5950        #[doc = "Output CMOS"]
5951        pub const _0: Self = Self::new(0);
5952
5953        #[doc = "Output NMOS open-drain"]
5954        pub const _1: Self = Self::new(1);
5955    }
5956}
5957#[doc(hidden)]
5958#[derive(Copy, Clone, Eq, PartialEq)]
5959pub struct P201Pfs_SPEC;
5960impl crate::sealed::RegSpec for P201Pfs_SPEC {
5961    type DataType = u32;
5962}
5963
5964#[doc = "Port 201 Pin Function Select Register"]
5965pub type P201Pfs = crate::RegValueT<P201Pfs_SPEC>;
5966
5967impl P201Pfs {
5968    #[doc = "Port Output Data"]
5969    #[inline(always)]
5970    pub fn podr(
5971        self,
5972    ) -> crate::common::RegisterField<
5973        0,
5974        0x1,
5975        1,
5976        0,
5977        p201pfs::Podr,
5978        p201pfs::Podr,
5979        P201Pfs_SPEC,
5980        crate::common::RW,
5981    > {
5982        crate::common::RegisterField::<
5983            0,
5984            0x1,
5985            1,
5986            0,
5987            p201pfs::Podr,
5988            p201pfs::Podr,
5989            P201Pfs_SPEC,
5990            crate::common::RW,
5991        >::from_register(self, 0)
5992    }
5993
5994    #[doc = "Port State"]
5995    #[inline(always)]
5996    pub fn pidr(
5997        self,
5998    ) -> crate::common::RegisterField<
5999        1,
6000        0x1,
6001        1,
6002        0,
6003        p201pfs::Pidr,
6004        p201pfs::Pidr,
6005        P201Pfs_SPEC,
6006        crate::common::R,
6007    > {
6008        crate::common::RegisterField::<
6009            1,
6010            0x1,
6011            1,
6012            0,
6013            p201pfs::Pidr,
6014            p201pfs::Pidr,
6015            P201Pfs_SPEC,
6016            crate::common::R,
6017        >::from_register(self, 0)
6018    }
6019
6020    #[doc = "Port Direction"]
6021    #[inline(always)]
6022    pub fn pdr(
6023        self,
6024    ) -> crate::common::RegisterField<
6025        2,
6026        0x1,
6027        1,
6028        0,
6029        p201pfs::Pdr,
6030        p201pfs::Pdr,
6031        P201Pfs_SPEC,
6032        crate::common::RW,
6033    > {
6034        crate::common::RegisterField::<
6035            2,
6036            0x1,
6037            1,
6038            0,
6039            p201pfs::Pdr,
6040            p201pfs::Pdr,
6041            P201Pfs_SPEC,
6042            crate::common::RW,
6043        >::from_register(self, 0)
6044    }
6045
6046    #[doc = "Pull-up Control"]
6047    #[inline(always)]
6048    pub fn pcr(
6049        self,
6050    ) -> crate::common::RegisterField<
6051        4,
6052        0x1,
6053        1,
6054        0,
6055        p201pfs::Pcr,
6056        p201pfs::Pcr,
6057        P201Pfs_SPEC,
6058        crate::common::RW,
6059    > {
6060        crate::common::RegisterField::<
6061            4,
6062            0x1,
6063            1,
6064            0,
6065            p201pfs::Pcr,
6066            p201pfs::Pcr,
6067            P201Pfs_SPEC,
6068            crate::common::RW,
6069        >::from_register(self, 0)
6070    }
6071
6072    #[doc = "N-Channel Open-Drain Control"]
6073    #[inline(always)]
6074    pub fn ncodr(
6075        self,
6076    ) -> crate::common::RegisterField<
6077        6,
6078        0x1,
6079        1,
6080        0,
6081        p201pfs::Ncodr,
6082        p201pfs::Ncodr,
6083        P201Pfs_SPEC,
6084        crate::common::RW,
6085    > {
6086        crate::common::RegisterField::<
6087            6,
6088            0x1,
6089            1,
6090            0,
6091            p201pfs::Ncodr,
6092            p201pfs::Ncodr,
6093            P201Pfs_SPEC,
6094            crate::common::RW,
6095        >::from_register(self, 0)
6096    }
6097
6098    #[doc = "Event on Falling/Event on Rising"]
6099    #[inline(always)]
6100    pub fn eofr(
6101        self,
6102    ) -> crate::common::RegisterField<
6103        12,
6104        0x3,
6105        1,
6106        0,
6107        p201pfs::Eofr,
6108        p201pfs::Eofr,
6109        P201Pfs_SPEC,
6110        crate::common::RW,
6111    > {
6112        crate::common::RegisterField::<
6113            12,
6114            0x3,
6115            1,
6116            0,
6117            p201pfs::Eofr,
6118            p201pfs::Eofr,
6119            P201Pfs_SPEC,
6120            crate::common::RW,
6121        >::from_register(self, 0)
6122    }
6123
6124    #[doc = "IRQ Input Enable"]
6125    #[inline(always)]
6126    pub fn isel(
6127        self,
6128    ) -> crate::common::RegisterField<
6129        14,
6130        0x1,
6131        1,
6132        0,
6133        p201pfs::Isel,
6134        p201pfs::Isel,
6135        P201Pfs_SPEC,
6136        crate::common::RW,
6137    > {
6138        crate::common::RegisterField::<
6139            14,
6140            0x1,
6141            1,
6142            0,
6143            p201pfs::Isel,
6144            p201pfs::Isel,
6145            P201Pfs_SPEC,
6146            crate::common::RW,
6147        >::from_register(self, 0)
6148    }
6149
6150    #[doc = "Analog Input Enable"]
6151    #[inline(always)]
6152    pub fn asel(
6153        self,
6154    ) -> crate::common::RegisterField<
6155        15,
6156        0x1,
6157        1,
6158        0,
6159        p201pfs::Asel,
6160        p201pfs::Asel,
6161        P201Pfs_SPEC,
6162        crate::common::RW,
6163    > {
6164        crate::common::RegisterField::<
6165            15,
6166            0x1,
6167            1,
6168            0,
6169            p201pfs::Asel,
6170            p201pfs::Asel,
6171            P201Pfs_SPEC,
6172            crate::common::RW,
6173        >::from_register(self, 0)
6174    }
6175
6176    #[doc = "Port Mode Control"]
6177    #[inline(always)]
6178    pub fn pmr(
6179        self,
6180    ) -> crate::common::RegisterField<
6181        16,
6182        0x1,
6183        1,
6184        0,
6185        p201pfs::Pmr,
6186        p201pfs::Pmr,
6187        P201Pfs_SPEC,
6188        crate::common::RW,
6189    > {
6190        crate::common::RegisterField::<
6191            16,
6192            0x1,
6193            1,
6194            0,
6195            p201pfs::Pmr,
6196            p201pfs::Pmr,
6197            P201Pfs_SPEC,
6198            crate::common::RW,
6199        >::from_register(self, 0)
6200    }
6201
6202    #[doc = "Peripheral Select"]
6203    #[inline(always)]
6204    pub fn psel(
6205        self,
6206    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P201Pfs_SPEC, crate::common::RW> {
6207        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P201Pfs_SPEC,crate::common::RW>::from_register(self,0)
6208    }
6209}
6210impl ::core::default::Default for P201Pfs {
6211    #[inline(always)]
6212    fn default() -> P201Pfs {
6213        <crate::RegValueT<P201Pfs_SPEC> as RegisterValue<_>>::new(16)
6214    }
6215}
6216pub mod p201pfs {
6217
6218    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6219    pub struct Podr_SPEC;
6220    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6221    impl Podr {
6222        #[doc = "Output low"]
6223        pub const _0: Self = Self::new(0);
6224
6225        #[doc = "Output high"]
6226        pub const _1: Self = Self::new(1);
6227    }
6228    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6229    pub struct Pidr_SPEC;
6230    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6231    impl Pidr {
6232        #[doc = "Low level"]
6233        pub const _0: Self = Self::new(0);
6234
6235        #[doc = "High level"]
6236        pub const _1: Self = Self::new(1);
6237    }
6238    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6239    pub struct Pdr_SPEC;
6240    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6241    impl Pdr {
6242        #[doc = "Input (functions as an input pin)"]
6243        pub const _0: Self = Self::new(0);
6244
6245        #[doc = "Output (functions as an output pin)"]
6246        pub const _1: Self = Self::new(1);
6247    }
6248    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6249    pub struct Pcr_SPEC;
6250    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6251    impl Pcr {
6252        #[doc = "Disable input pull-up"]
6253        pub const _0: Self = Self::new(0);
6254
6255        #[doc = "Enable input pull-up"]
6256        pub const _1: Self = Self::new(1);
6257    }
6258    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6259    pub struct Ncodr_SPEC;
6260    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6261    impl Ncodr {
6262        #[doc = "Output CMOS"]
6263        pub const _0: Self = Self::new(0);
6264
6265        #[doc = "Output NMOS open-drain"]
6266        pub const _1: Self = Self::new(1);
6267    }
6268    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6269    pub struct Eofr_SPEC;
6270    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
6271    impl Eofr {
6272        #[doc = "Don\'t care"]
6273        pub const _00: Self = Self::new(0);
6274
6275        #[doc = "Detect rising edge"]
6276        pub const _01: Self = Self::new(1);
6277
6278        #[doc = "Detect falling edge"]
6279        pub const _10: Self = Self::new(2);
6280
6281        #[doc = "Detect both edges"]
6282        pub const _11: Self = Self::new(3);
6283    }
6284    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6285    pub struct Isel_SPEC;
6286    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
6287    impl Isel {
6288        #[doc = "Do not use as IRQn input pin"]
6289        pub const _0: Self = Self::new(0);
6290
6291        #[doc = "Use as IRQn input pin"]
6292        pub const _1: Self = Self::new(1);
6293    }
6294    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6295    pub struct Asel_SPEC;
6296    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
6297    impl Asel {
6298        #[doc = "Do not use as analog pin"]
6299        pub const _0: Self = Self::new(0);
6300
6301        #[doc = "Use as analog pin"]
6302        pub const _1: Self = Self::new(1);
6303    }
6304    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6305    pub struct Pmr_SPEC;
6306    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
6307    impl Pmr {
6308        #[doc = "Use as general I/O pin"]
6309        pub const _0: Self = Self::new(0);
6310
6311        #[doc = "Use as I/O port for peripheral functions"]
6312        pub const _1: Self = Self::new(1);
6313    }
6314}
6315#[doc(hidden)]
6316#[derive(Copy, Clone, Eq, PartialEq)]
6317pub struct P201PfsHa_SPEC;
6318impl crate::sealed::RegSpec for P201PfsHa_SPEC {
6319    type DataType = u16;
6320}
6321
6322#[doc = "Port 201 Pin Function Select Register"]
6323pub type P201PfsHa = crate::RegValueT<P201PfsHa_SPEC>;
6324
6325impl P201PfsHa {
6326    #[doc = "Port Output Data"]
6327    #[inline(always)]
6328    pub fn podr(
6329        self,
6330    ) -> crate::common::RegisterField<
6331        0,
6332        0x1,
6333        1,
6334        0,
6335        p201pfs_ha::Podr,
6336        p201pfs_ha::Podr,
6337        P201PfsHa_SPEC,
6338        crate::common::RW,
6339    > {
6340        crate::common::RegisterField::<
6341            0,
6342            0x1,
6343            1,
6344            0,
6345            p201pfs_ha::Podr,
6346            p201pfs_ha::Podr,
6347            P201PfsHa_SPEC,
6348            crate::common::RW,
6349        >::from_register(self, 0)
6350    }
6351
6352    #[doc = "Port State"]
6353    #[inline(always)]
6354    pub fn pidr(
6355        self,
6356    ) -> crate::common::RegisterField<
6357        1,
6358        0x1,
6359        1,
6360        0,
6361        p201pfs_ha::Pidr,
6362        p201pfs_ha::Pidr,
6363        P201PfsHa_SPEC,
6364        crate::common::R,
6365    > {
6366        crate::common::RegisterField::<
6367            1,
6368            0x1,
6369            1,
6370            0,
6371            p201pfs_ha::Pidr,
6372            p201pfs_ha::Pidr,
6373            P201PfsHa_SPEC,
6374            crate::common::R,
6375        >::from_register(self, 0)
6376    }
6377
6378    #[doc = "Port Direction"]
6379    #[inline(always)]
6380    pub fn pdr(
6381        self,
6382    ) -> crate::common::RegisterField<
6383        2,
6384        0x1,
6385        1,
6386        0,
6387        p201pfs_ha::Pdr,
6388        p201pfs_ha::Pdr,
6389        P201PfsHa_SPEC,
6390        crate::common::RW,
6391    > {
6392        crate::common::RegisterField::<
6393            2,
6394            0x1,
6395            1,
6396            0,
6397            p201pfs_ha::Pdr,
6398            p201pfs_ha::Pdr,
6399            P201PfsHa_SPEC,
6400            crate::common::RW,
6401        >::from_register(self, 0)
6402    }
6403
6404    #[doc = "Pull-up Control"]
6405    #[inline(always)]
6406    pub fn pcr(
6407        self,
6408    ) -> crate::common::RegisterField<
6409        4,
6410        0x1,
6411        1,
6412        0,
6413        p201pfs_ha::Pcr,
6414        p201pfs_ha::Pcr,
6415        P201PfsHa_SPEC,
6416        crate::common::RW,
6417    > {
6418        crate::common::RegisterField::<
6419            4,
6420            0x1,
6421            1,
6422            0,
6423            p201pfs_ha::Pcr,
6424            p201pfs_ha::Pcr,
6425            P201PfsHa_SPEC,
6426            crate::common::RW,
6427        >::from_register(self, 0)
6428    }
6429
6430    #[doc = "N-Channel Open-Drain Control"]
6431    #[inline(always)]
6432    pub fn ncodr(
6433        self,
6434    ) -> crate::common::RegisterField<
6435        6,
6436        0x1,
6437        1,
6438        0,
6439        p201pfs_ha::Ncodr,
6440        p201pfs_ha::Ncodr,
6441        P201PfsHa_SPEC,
6442        crate::common::RW,
6443    > {
6444        crate::common::RegisterField::<
6445            6,
6446            0x1,
6447            1,
6448            0,
6449            p201pfs_ha::Ncodr,
6450            p201pfs_ha::Ncodr,
6451            P201PfsHa_SPEC,
6452            crate::common::RW,
6453        >::from_register(self, 0)
6454    }
6455
6456    #[doc = "Event on Falling/Event on Rising"]
6457    #[inline(always)]
6458    pub fn eofr(
6459        self,
6460    ) -> crate::common::RegisterField<
6461        12,
6462        0x3,
6463        1,
6464        0,
6465        p201pfs_ha::Eofr,
6466        p201pfs_ha::Eofr,
6467        P201PfsHa_SPEC,
6468        crate::common::RW,
6469    > {
6470        crate::common::RegisterField::<
6471            12,
6472            0x3,
6473            1,
6474            0,
6475            p201pfs_ha::Eofr,
6476            p201pfs_ha::Eofr,
6477            P201PfsHa_SPEC,
6478            crate::common::RW,
6479        >::from_register(self, 0)
6480    }
6481
6482    #[doc = "IRQ Input Enable"]
6483    #[inline(always)]
6484    pub fn isel(
6485        self,
6486    ) -> crate::common::RegisterField<
6487        14,
6488        0x1,
6489        1,
6490        0,
6491        p201pfs_ha::Isel,
6492        p201pfs_ha::Isel,
6493        P201PfsHa_SPEC,
6494        crate::common::RW,
6495    > {
6496        crate::common::RegisterField::<
6497            14,
6498            0x1,
6499            1,
6500            0,
6501            p201pfs_ha::Isel,
6502            p201pfs_ha::Isel,
6503            P201PfsHa_SPEC,
6504            crate::common::RW,
6505        >::from_register(self, 0)
6506    }
6507
6508    #[doc = "Analog Input Enable"]
6509    #[inline(always)]
6510    pub fn asel(
6511        self,
6512    ) -> crate::common::RegisterField<
6513        15,
6514        0x1,
6515        1,
6516        0,
6517        p201pfs_ha::Asel,
6518        p201pfs_ha::Asel,
6519        P201PfsHa_SPEC,
6520        crate::common::RW,
6521    > {
6522        crate::common::RegisterField::<
6523            15,
6524            0x1,
6525            1,
6526            0,
6527            p201pfs_ha::Asel,
6528            p201pfs_ha::Asel,
6529            P201PfsHa_SPEC,
6530            crate::common::RW,
6531        >::from_register(self, 0)
6532    }
6533}
6534impl ::core::default::Default for P201PfsHa {
6535    #[inline(always)]
6536    fn default() -> P201PfsHa {
6537        <crate::RegValueT<P201PfsHa_SPEC> as RegisterValue<_>>::new(16)
6538    }
6539}
6540pub mod p201pfs_ha {
6541
6542    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6543    pub struct Podr_SPEC;
6544    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6545    impl Podr {
6546        #[doc = "Output low"]
6547        pub const _0: Self = Self::new(0);
6548
6549        #[doc = "Output high"]
6550        pub const _1: Self = Self::new(1);
6551    }
6552    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6553    pub struct Pidr_SPEC;
6554    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6555    impl Pidr {
6556        #[doc = "Low level"]
6557        pub const _0: Self = Self::new(0);
6558
6559        #[doc = "High level"]
6560        pub const _1: Self = Self::new(1);
6561    }
6562    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6563    pub struct Pdr_SPEC;
6564    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6565    impl Pdr {
6566        #[doc = "Input (functions as an input pin)"]
6567        pub const _0: Self = Self::new(0);
6568
6569        #[doc = "Output (functions as an output pin)"]
6570        pub const _1: Self = Self::new(1);
6571    }
6572    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6573    pub struct Pcr_SPEC;
6574    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6575    impl Pcr {
6576        #[doc = "Disable input pull-up"]
6577        pub const _0: Self = Self::new(0);
6578
6579        #[doc = "Enable input pull-up"]
6580        pub const _1: Self = Self::new(1);
6581    }
6582    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6583    pub struct Ncodr_SPEC;
6584    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6585    impl Ncodr {
6586        #[doc = "Output CMOS"]
6587        pub const _0: Self = Self::new(0);
6588
6589        #[doc = "Output NMOS open-drain"]
6590        pub const _1: Self = Self::new(1);
6591    }
6592    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6593    pub struct Eofr_SPEC;
6594    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
6595    impl Eofr {
6596        #[doc = "Don\'t care"]
6597        pub const _00: Self = Self::new(0);
6598
6599        #[doc = "Detect rising edge"]
6600        pub const _01: Self = Self::new(1);
6601
6602        #[doc = "Detect falling edge"]
6603        pub const _10: Self = Self::new(2);
6604
6605        #[doc = "Detect both edges"]
6606        pub const _11: Self = Self::new(3);
6607    }
6608    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6609    pub struct Isel_SPEC;
6610    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
6611    impl Isel {
6612        #[doc = "Do not use as IRQn input pin"]
6613        pub const _0: Self = Self::new(0);
6614
6615        #[doc = "Use as IRQn input pin"]
6616        pub const _1: Self = Self::new(1);
6617    }
6618    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6619    pub struct Asel_SPEC;
6620    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
6621    impl Asel {
6622        #[doc = "Do not use as analog pin"]
6623        pub const _0: Self = Self::new(0);
6624
6625        #[doc = "Use as analog pin"]
6626        pub const _1: Self = Self::new(1);
6627    }
6628}
6629#[doc(hidden)]
6630#[derive(Copy, Clone, Eq, PartialEq)]
6631pub struct P201PfsBy_SPEC;
6632impl crate::sealed::RegSpec for P201PfsBy_SPEC {
6633    type DataType = u8;
6634}
6635
6636#[doc = "Port 201 Pin Function Select Register"]
6637pub type P201PfsBy = crate::RegValueT<P201PfsBy_SPEC>;
6638
6639impl P201PfsBy {
6640    #[doc = "Port Output Data"]
6641    #[inline(always)]
6642    pub fn podr(
6643        self,
6644    ) -> crate::common::RegisterField<
6645        0,
6646        0x1,
6647        1,
6648        0,
6649        p201pfs_by::Podr,
6650        p201pfs_by::Podr,
6651        P201PfsBy_SPEC,
6652        crate::common::RW,
6653    > {
6654        crate::common::RegisterField::<
6655            0,
6656            0x1,
6657            1,
6658            0,
6659            p201pfs_by::Podr,
6660            p201pfs_by::Podr,
6661            P201PfsBy_SPEC,
6662            crate::common::RW,
6663        >::from_register(self, 0)
6664    }
6665
6666    #[doc = "Port State"]
6667    #[inline(always)]
6668    pub fn pidr(
6669        self,
6670    ) -> crate::common::RegisterField<
6671        1,
6672        0x1,
6673        1,
6674        0,
6675        p201pfs_by::Pidr,
6676        p201pfs_by::Pidr,
6677        P201PfsBy_SPEC,
6678        crate::common::R,
6679    > {
6680        crate::common::RegisterField::<
6681            1,
6682            0x1,
6683            1,
6684            0,
6685            p201pfs_by::Pidr,
6686            p201pfs_by::Pidr,
6687            P201PfsBy_SPEC,
6688            crate::common::R,
6689        >::from_register(self, 0)
6690    }
6691
6692    #[doc = "Port Direction"]
6693    #[inline(always)]
6694    pub fn pdr(
6695        self,
6696    ) -> crate::common::RegisterField<
6697        2,
6698        0x1,
6699        1,
6700        0,
6701        p201pfs_by::Pdr,
6702        p201pfs_by::Pdr,
6703        P201PfsBy_SPEC,
6704        crate::common::RW,
6705    > {
6706        crate::common::RegisterField::<
6707            2,
6708            0x1,
6709            1,
6710            0,
6711            p201pfs_by::Pdr,
6712            p201pfs_by::Pdr,
6713            P201PfsBy_SPEC,
6714            crate::common::RW,
6715        >::from_register(self, 0)
6716    }
6717
6718    #[doc = "Pull-up Control"]
6719    #[inline(always)]
6720    pub fn pcr(
6721        self,
6722    ) -> crate::common::RegisterField<
6723        4,
6724        0x1,
6725        1,
6726        0,
6727        p201pfs_by::Pcr,
6728        p201pfs_by::Pcr,
6729        P201PfsBy_SPEC,
6730        crate::common::RW,
6731    > {
6732        crate::common::RegisterField::<
6733            4,
6734            0x1,
6735            1,
6736            0,
6737            p201pfs_by::Pcr,
6738            p201pfs_by::Pcr,
6739            P201PfsBy_SPEC,
6740            crate::common::RW,
6741        >::from_register(self, 0)
6742    }
6743
6744    #[doc = "N-Channel Open-Drain Control"]
6745    #[inline(always)]
6746    pub fn ncodr(
6747        self,
6748    ) -> crate::common::RegisterField<
6749        6,
6750        0x1,
6751        1,
6752        0,
6753        p201pfs_by::Ncodr,
6754        p201pfs_by::Ncodr,
6755        P201PfsBy_SPEC,
6756        crate::common::RW,
6757    > {
6758        crate::common::RegisterField::<
6759            6,
6760            0x1,
6761            1,
6762            0,
6763            p201pfs_by::Ncodr,
6764            p201pfs_by::Ncodr,
6765            P201PfsBy_SPEC,
6766            crate::common::RW,
6767        >::from_register(self, 0)
6768    }
6769}
6770impl ::core::default::Default for P201PfsBy {
6771    #[inline(always)]
6772    fn default() -> P201PfsBy {
6773        <crate::RegValueT<P201PfsBy_SPEC> as RegisterValue<_>>::new(16)
6774    }
6775}
6776pub mod p201pfs_by {
6777
6778    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6779    pub struct Podr_SPEC;
6780    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
6781    impl Podr {
6782        #[doc = "Output low"]
6783        pub const _0: Self = Self::new(0);
6784
6785        #[doc = "Output high"]
6786        pub const _1: Self = Self::new(1);
6787    }
6788    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6789    pub struct Pidr_SPEC;
6790    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
6791    impl Pidr {
6792        #[doc = "Low level"]
6793        pub const _0: Self = Self::new(0);
6794
6795        #[doc = "High level"]
6796        pub const _1: Self = Self::new(1);
6797    }
6798    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6799    pub struct Pdr_SPEC;
6800    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
6801    impl Pdr {
6802        #[doc = "Input (functions as an input pin)"]
6803        pub const _0: Self = Self::new(0);
6804
6805        #[doc = "Output (functions as an output pin)"]
6806        pub const _1: Self = Self::new(1);
6807    }
6808    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6809    pub struct Pcr_SPEC;
6810    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
6811    impl Pcr {
6812        #[doc = "Disable input pull-up"]
6813        pub const _0: Self = Self::new(0);
6814
6815        #[doc = "Enable input pull-up"]
6816        pub const _1: Self = Self::new(1);
6817    }
6818    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
6819    pub struct Ncodr_SPEC;
6820    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
6821    impl Ncodr {
6822        #[doc = "Output CMOS"]
6823        pub const _0: Self = Self::new(0);
6824
6825        #[doc = "Output NMOS open-drain"]
6826        pub const _1: Self = Self::new(1);
6827    }
6828}
6829#[doc(hidden)]
6830#[derive(Copy, Clone, Eq, PartialEq)]
6831pub struct P205Pfs_SPEC;
6832impl crate::sealed::RegSpec for P205Pfs_SPEC {
6833    type DataType = u32;
6834}
6835
6836#[doc = "Port 205 Pin Function Select Register"]
6837pub type P205Pfs = crate::RegValueT<P205Pfs_SPEC>;
6838
6839impl P205Pfs {
6840    #[doc = "Port Output Data"]
6841    #[inline(always)]
6842    pub fn podr(
6843        self,
6844    ) -> crate::common::RegisterField<
6845        0,
6846        0x1,
6847        1,
6848        0,
6849        p205pfs::Podr,
6850        p205pfs::Podr,
6851        P205Pfs_SPEC,
6852        crate::common::RW,
6853    > {
6854        crate::common::RegisterField::<
6855            0,
6856            0x1,
6857            1,
6858            0,
6859            p205pfs::Podr,
6860            p205pfs::Podr,
6861            P205Pfs_SPEC,
6862            crate::common::RW,
6863        >::from_register(self, 0)
6864    }
6865
6866    #[doc = "Port State"]
6867    #[inline(always)]
6868    pub fn pidr(
6869        self,
6870    ) -> crate::common::RegisterField<
6871        1,
6872        0x1,
6873        1,
6874        0,
6875        p205pfs::Pidr,
6876        p205pfs::Pidr,
6877        P205Pfs_SPEC,
6878        crate::common::R,
6879    > {
6880        crate::common::RegisterField::<
6881            1,
6882            0x1,
6883            1,
6884            0,
6885            p205pfs::Pidr,
6886            p205pfs::Pidr,
6887            P205Pfs_SPEC,
6888            crate::common::R,
6889        >::from_register(self, 0)
6890    }
6891
6892    #[doc = "Port Direction"]
6893    #[inline(always)]
6894    pub fn pdr(
6895        self,
6896    ) -> crate::common::RegisterField<
6897        2,
6898        0x1,
6899        1,
6900        0,
6901        p205pfs::Pdr,
6902        p205pfs::Pdr,
6903        P205Pfs_SPEC,
6904        crate::common::RW,
6905    > {
6906        crate::common::RegisterField::<
6907            2,
6908            0x1,
6909            1,
6910            0,
6911            p205pfs::Pdr,
6912            p205pfs::Pdr,
6913            P205Pfs_SPEC,
6914            crate::common::RW,
6915        >::from_register(self, 0)
6916    }
6917
6918    #[doc = "Pull-up Control"]
6919    #[inline(always)]
6920    pub fn pcr(
6921        self,
6922    ) -> crate::common::RegisterField<
6923        4,
6924        0x1,
6925        1,
6926        0,
6927        p205pfs::Pcr,
6928        p205pfs::Pcr,
6929        P205Pfs_SPEC,
6930        crate::common::RW,
6931    > {
6932        crate::common::RegisterField::<
6933            4,
6934            0x1,
6935            1,
6936            0,
6937            p205pfs::Pcr,
6938            p205pfs::Pcr,
6939            P205Pfs_SPEC,
6940            crate::common::RW,
6941        >::from_register(self, 0)
6942    }
6943
6944    #[doc = "N-Channel Open-Drain Control"]
6945    #[inline(always)]
6946    pub fn ncodr(
6947        self,
6948    ) -> crate::common::RegisterField<
6949        6,
6950        0x1,
6951        1,
6952        0,
6953        p205pfs::Ncodr,
6954        p205pfs::Ncodr,
6955        P205Pfs_SPEC,
6956        crate::common::RW,
6957    > {
6958        crate::common::RegisterField::<
6959            6,
6960            0x1,
6961            1,
6962            0,
6963            p205pfs::Ncodr,
6964            p205pfs::Ncodr,
6965            P205Pfs_SPEC,
6966            crate::common::RW,
6967        >::from_register(self, 0)
6968    }
6969
6970    #[doc = "Event on Falling/Event on Rising"]
6971    #[inline(always)]
6972    pub fn eofr(
6973        self,
6974    ) -> crate::common::RegisterField<
6975        12,
6976        0x3,
6977        1,
6978        0,
6979        p205pfs::Eofr,
6980        p205pfs::Eofr,
6981        P205Pfs_SPEC,
6982        crate::common::RW,
6983    > {
6984        crate::common::RegisterField::<
6985            12,
6986            0x3,
6987            1,
6988            0,
6989            p205pfs::Eofr,
6990            p205pfs::Eofr,
6991            P205Pfs_SPEC,
6992            crate::common::RW,
6993        >::from_register(self, 0)
6994    }
6995
6996    #[doc = "IRQ Input Enable"]
6997    #[inline(always)]
6998    pub fn isel(
6999        self,
7000    ) -> crate::common::RegisterField<
7001        14,
7002        0x1,
7003        1,
7004        0,
7005        p205pfs::Isel,
7006        p205pfs::Isel,
7007        P205Pfs_SPEC,
7008        crate::common::RW,
7009    > {
7010        crate::common::RegisterField::<
7011            14,
7012            0x1,
7013            1,
7014            0,
7015            p205pfs::Isel,
7016            p205pfs::Isel,
7017            P205Pfs_SPEC,
7018            crate::common::RW,
7019        >::from_register(self, 0)
7020    }
7021
7022    #[doc = "Analog Input Enable"]
7023    #[inline(always)]
7024    pub fn asel(
7025        self,
7026    ) -> crate::common::RegisterField<
7027        15,
7028        0x1,
7029        1,
7030        0,
7031        p205pfs::Asel,
7032        p205pfs::Asel,
7033        P205Pfs_SPEC,
7034        crate::common::RW,
7035    > {
7036        crate::common::RegisterField::<
7037            15,
7038            0x1,
7039            1,
7040            0,
7041            p205pfs::Asel,
7042            p205pfs::Asel,
7043            P205Pfs_SPEC,
7044            crate::common::RW,
7045        >::from_register(self, 0)
7046    }
7047
7048    #[doc = "Port Mode Control"]
7049    #[inline(always)]
7050    pub fn pmr(
7051        self,
7052    ) -> crate::common::RegisterField<
7053        16,
7054        0x1,
7055        1,
7056        0,
7057        p205pfs::Pmr,
7058        p205pfs::Pmr,
7059        P205Pfs_SPEC,
7060        crate::common::RW,
7061    > {
7062        crate::common::RegisterField::<
7063            16,
7064            0x1,
7065            1,
7066            0,
7067            p205pfs::Pmr,
7068            p205pfs::Pmr,
7069            P205Pfs_SPEC,
7070            crate::common::RW,
7071        >::from_register(self, 0)
7072    }
7073
7074    #[doc = "Peripheral Select"]
7075    #[inline(always)]
7076    pub fn psel(
7077        self,
7078    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P205Pfs_SPEC, crate::common::RW> {
7079        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P205Pfs_SPEC,crate::common::RW>::from_register(self,0)
7080    }
7081}
7082impl ::core::default::Default for P205Pfs {
7083    #[inline(always)]
7084    fn default() -> P205Pfs {
7085        <crate::RegValueT<P205Pfs_SPEC> as RegisterValue<_>>::new(0)
7086    }
7087}
7088pub mod p205pfs {
7089
7090    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7091    pub struct Podr_SPEC;
7092    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
7093    impl Podr {
7094        #[doc = "Output low"]
7095        pub const _0: Self = Self::new(0);
7096
7097        #[doc = "Output high"]
7098        pub const _1: Self = Self::new(1);
7099    }
7100    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7101    pub struct Pidr_SPEC;
7102    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
7103    impl Pidr {
7104        #[doc = "Low level"]
7105        pub const _0: Self = Self::new(0);
7106
7107        #[doc = "High level"]
7108        pub const _1: Self = Self::new(1);
7109    }
7110    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7111    pub struct Pdr_SPEC;
7112    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
7113    impl Pdr {
7114        #[doc = "Input (functions as an input pin)"]
7115        pub const _0: Self = Self::new(0);
7116
7117        #[doc = "Output (functions as an output pin)"]
7118        pub const _1: Self = Self::new(1);
7119    }
7120    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7121    pub struct Pcr_SPEC;
7122    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
7123    impl Pcr {
7124        #[doc = "Disable input pull-up"]
7125        pub const _0: Self = Self::new(0);
7126
7127        #[doc = "Enable input pull-up"]
7128        pub const _1: Self = Self::new(1);
7129    }
7130    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7131    pub struct Ncodr_SPEC;
7132    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
7133    impl Ncodr {
7134        #[doc = "Output CMOS"]
7135        pub const _0: Self = Self::new(0);
7136
7137        #[doc = "Output NMOS open-drain"]
7138        pub const _1: Self = Self::new(1);
7139    }
7140    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7141    pub struct Eofr_SPEC;
7142    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
7143    impl Eofr {
7144        #[doc = "Don\'t care"]
7145        pub const _00: Self = Self::new(0);
7146
7147        #[doc = "Detect rising edge"]
7148        pub const _01: Self = Self::new(1);
7149
7150        #[doc = "Detect falling edge"]
7151        pub const _10: Self = Self::new(2);
7152
7153        #[doc = "Detect both edges"]
7154        pub const _11: Self = Self::new(3);
7155    }
7156    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7157    pub struct Isel_SPEC;
7158    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
7159    impl Isel {
7160        #[doc = "Do not use as IRQn input pin"]
7161        pub const _0: Self = Self::new(0);
7162
7163        #[doc = "Use as IRQn input pin"]
7164        pub const _1: Self = Self::new(1);
7165    }
7166    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7167    pub struct Asel_SPEC;
7168    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
7169    impl Asel {
7170        #[doc = "Do not use as analog pin"]
7171        pub const _0: Self = Self::new(0);
7172
7173        #[doc = "Use as analog pin"]
7174        pub const _1: Self = Self::new(1);
7175    }
7176    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7177    pub struct Pmr_SPEC;
7178    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
7179    impl Pmr {
7180        #[doc = "Use as general I/O pin"]
7181        pub const _0: Self = Self::new(0);
7182
7183        #[doc = "Use as I/O port for peripheral functions"]
7184        pub const _1: Self = Self::new(1);
7185    }
7186}
7187#[doc(hidden)]
7188#[derive(Copy, Clone, Eq, PartialEq)]
7189pub struct P205PfsHa_SPEC;
7190impl crate::sealed::RegSpec for P205PfsHa_SPEC {
7191    type DataType = u16;
7192}
7193
7194#[doc = "Port 205 Pin Function Select Register"]
7195pub type P205PfsHa = crate::RegValueT<P205PfsHa_SPEC>;
7196
7197impl P205PfsHa {
7198    #[doc = "Port Output Data"]
7199    #[inline(always)]
7200    pub fn podr(
7201        self,
7202    ) -> crate::common::RegisterField<
7203        0,
7204        0x1,
7205        1,
7206        0,
7207        p205pfs_ha::Podr,
7208        p205pfs_ha::Podr,
7209        P205PfsHa_SPEC,
7210        crate::common::RW,
7211    > {
7212        crate::common::RegisterField::<
7213            0,
7214            0x1,
7215            1,
7216            0,
7217            p205pfs_ha::Podr,
7218            p205pfs_ha::Podr,
7219            P205PfsHa_SPEC,
7220            crate::common::RW,
7221        >::from_register(self, 0)
7222    }
7223
7224    #[doc = "Port State"]
7225    #[inline(always)]
7226    pub fn pidr(
7227        self,
7228    ) -> crate::common::RegisterField<
7229        1,
7230        0x1,
7231        1,
7232        0,
7233        p205pfs_ha::Pidr,
7234        p205pfs_ha::Pidr,
7235        P205PfsHa_SPEC,
7236        crate::common::R,
7237    > {
7238        crate::common::RegisterField::<
7239            1,
7240            0x1,
7241            1,
7242            0,
7243            p205pfs_ha::Pidr,
7244            p205pfs_ha::Pidr,
7245            P205PfsHa_SPEC,
7246            crate::common::R,
7247        >::from_register(self, 0)
7248    }
7249
7250    #[doc = "Port Direction"]
7251    #[inline(always)]
7252    pub fn pdr(
7253        self,
7254    ) -> crate::common::RegisterField<
7255        2,
7256        0x1,
7257        1,
7258        0,
7259        p205pfs_ha::Pdr,
7260        p205pfs_ha::Pdr,
7261        P205PfsHa_SPEC,
7262        crate::common::RW,
7263    > {
7264        crate::common::RegisterField::<
7265            2,
7266            0x1,
7267            1,
7268            0,
7269            p205pfs_ha::Pdr,
7270            p205pfs_ha::Pdr,
7271            P205PfsHa_SPEC,
7272            crate::common::RW,
7273        >::from_register(self, 0)
7274    }
7275
7276    #[doc = "Pull-up Control"]
7277    #[inline(always)]
7278    pub fn pcr(
7279        self,
7280    ) -> crate::common::RegisterField<
7281        4,
7282        0x1,
7283        1,
7284        0,
7285        p205pfs_ha::Pcr,
7286        p205pfs_ha::Pcr,
7287        P205PfsHa_SPEC,
7288        crate::common::RW,
7289    > {
7290        crate::common::RegisterField::<
7291            4,
7292            0x1,
7293            1,
7294            0,
7295            p205pfs_ha::Pcr,
7296            p205pfs_ha::Pcr,
7297            P205PfsHa_SPEC,
7298            crate::common::RW,
7299        >::from_register(self, 0)
7300    }
7301
7302    #[doc = "N-Channel Open-Drain Control"]
7303    #[inline(always)]
7304    pub fn ncodr(
7305        self,
7306    ) -> crate::common::RegisterField<
7307        6,
7308        0x1,
7309        1,
7310        0,
7311        p205pfs_ha::Ncodr,
7312        p205pfs_ha::Ncodr,
7313        P205PfsHa_SPEC,
7314        crate::common::RW,
7315    > {
7316        crate::common::RegisterField::<
7317            6,
7318            0x1,
7319            1,
7320            0,
7321            p205pfs_ha::Ncodr,
7322            p205pfs_ha::Ncodr,
7323            P205PfsHa_SPEC,
7324            crate::common::RW,
7325        >::from_register(self, 0)
7326    }
7327
7328    #[doc = "Event on Falling/Event on Rising"]
7329    #[inline(always)]
7330    pub fn eofr(
7331        self,
7332    ) -> crate::common::RegisterField<
7333        12,
7334        0x3,
7335        1,
7336        0,
7337        p205pfs_ha::Eofr,
7338        p205pfs_ha::Eofr,
7339        P205PfsHa_SPEC,
7340        crate::common::RW,
7341    > {
7342        crate::common::RegisterField::<
7343            12,
7344            0x3,
7345            1,
7346            0,
7347            p205pfs_ha::Eofr,
7348            p205pfs_ha::Eofr,
7349            P205PfsHa_SPEC,
7350            crate::common::RW,
7351        >::from_register(self, 0)
7352    }
7353
7354    #[doc = "IRQ Input Enable"]
7355    #[inline(always)]
7356    pub fn isel(
7357        self,
7358    ) -> crate::common::RegisterField<
7359        14,
7360        0x1,
7361        1,
7362        0,
7363        p205pfs_ha::Isel,
7364        p205pfs_ha::Isel,
7365        P205PfsHa_SPEC,
7366        crate::common::RW,
7367    > {
7368        crate::common::RegisterField::<
7369            14,
7370            0x1,
7371            1,
7372            0,
7373            p205pfs_ha::Isel,
7374            p205pfs_ha::Isel,
7375            P205PfsHa_SPEC,
7376            crate::common::RW,
7377        >::from_register(self, 0)
7378    }
7379
7380    #[doc = "Analog Input Enable"]
7381    #[inline(always)]
7382    pub fn asel(
7383        self,
7384    ) -> crate::common::RegisterField<
7385        15,
7386        0x1,
7387        1,
7388        0,
7389        p205pfs_ha::Asel,
7390        p205pfs_ha::Asel,
7391        P205PfsHa_SPEC,
7392        crate::common::RW,
7393    > {
7394        crate::common::RegisterField::<
7395            15,
7396            0x1,
7397            1,
7398            0,
7399            p205pfs_ha::Asel,
7400            p205pfs_ha::Asel,
7401            P205PfsHa_SPEC,
7402            crate::common::RW,
7403        >::from_register(self, 0)
7404    }
7405}
7406impl ::core::default::Default for P205PfsHa {
7407    #[inline(always)]
7408    fn default() -> P205PfsHa {
7409        <crate::RegValueT<P205PfsHa_SPEC> as RegisterValue<_>>::new(0)
7410    }
7411}
7412pub mod p205pfs_ha {
7413
7414    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7415    pub struct Podr_SPEC;
7416    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
7417    impl Podr {
7418        #[doc = "Output low"]
7419        pub const _0: Self = Self::new(0);
7420
7421        #[doc = "Output high"]
7422        pub const _1: Self = Self::new(1);
7423    }
7424    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7425    pub struct Pidr_SPEC;
7426    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
7427    impl Pidr {
7428        #[doc = "Low level"]
7429        pub const _0: Self = Self::new(0);
7430
7431        #[doc = "High level"]
7432        pub const _1: Self = Self::new(1);
7433    }
7434    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7435    pub struct Pdr_SPEC;
7436    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
7437    impl Pdr {
7438        #[doc = "Input (functions as an input pin)"]
7439        pub const _0: Self = Self::new(0);
7440
7441        #[doc = "Output (functions as an output pin)"]
7442        pub const _1: Self = Self::new(1);
7443    }
7444    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7445    pub struct Pcr_SPEC;
7446    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
7447    impl Pcr {
7448        #[doc = "Disable input pull-up"]
7449        pub const _0: Self = Self::new(0);
7450
7451        #[doc = "Enable input pull-up"]
7452        pub const _1: Self = Self::new(1);
7453    }
7454    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7455    pub struct Ncodr_SPEC;
7456    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
7457    impl Ncodr {
7458        #[doc = "Output CMOS"]
7459        pub const _0: Self = Self::new(0);
7460
7461        #[doc = "Output NMOS open-drain"]
7462        pub const _1: Self = Self::new(1);
7463    }
7464    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7465    pub struct Eofr_SPEC;
7466    pub type Eofr = crate::EnumBitfieldStruct<u8, Eofr_SPEC>;
7467    impl Eofr {
7468        #[doc = "Don\'t care"]
7469        pub const _00: Self = Self::new(0);
7470
7471        #[doc = "Detect rising edge"]
7472        pub const _01: Self = Self::new(1);
7473
7474        #[doc = "Detect falling edge"]
7475        pub const _10: Self = Self::new(2);
7476
7477        #[doc = "Detect both edges"]
7478        pub const _11: Self = Self::new(3);
7479    }
7480    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7481    pub struct Isel_SPEC;
7482    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
7483    impl Isel {
7484        #[doc = "Do not use as IRQn input pin"]
7485        pub const _0: Self = Self::new(0);
7486
7487        #[doc = "Use as IRQn input pin"]
7488        pub const _1: Self = Self::new(1);
7489    }
7490    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7491    pub struct Asel_SPEC;
7492    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
7493    impl Asel {
7494        #[doc = "Do not use as analog pin"]
7495        pub const _0: Self = Self::new(0);
7496
7497        #[doc = "Use as analog pin"]
7498        pub const _1: Self = Self::new(1);
7499    }
7500}
7501#[doc(hidden)]
7502#[derive(Copy, Clone, Eq, PartialEq)]
7503pub struct P205PfsBy_SPEC;
7504impl crate::sealed::RegSpec for P205PfsBy_SPEC {
7505    type DataType = u8;
7506}
7507
7508#[doc = "Port 205 Pin Function Select Register"]
7509pub type P205PfsBy = crate::RegValueT<P205PfsBy_SPEC>;
7510
7511impl P205PfsBy {
7512    #[doc = "Port Output Data"]
7513    #[inline(always)]
7514    pub fn podr(
7515        self,
7516    ) -> crate::common::RegisterField<
7517        0,
7518        0x1,
7519        1,
7520        0,
7521        p205pfs_by::Podr,
7522        p205pfs_by::Podr,
7523        P205PfsBy_SPEC,
7524        crate::common::RW,
7525    > {
7526        crate::common::RegisterField::<
7527            0,
7528            0x1,
7529            1,
7530            0,
7531            p205pfs_by::Podr,
7532            p205pfs_by::Podr,
7533            P205PfsBy_SPEC,
7534            crate::common::RW,
7535        >::from_register(self, 0)
7536    }
7537
7538    #[doc = "Port State"]
7539    #[inline(always)]
7540    pub fn pidr(
7541        self,
7542    ) -> crate::common::RegisterField<
7543        1,
7544        0x1,
7545        1,
7546        0,
7547        p205pfs_by::Pidr,
7548        p205pfs_by::Pidr,
7549        P205PfsBy_SPEC,
7550        crate::common::R,
7551    > {
7552        crate::common::RegisterField::<
7553            1,
7554            0x1,
7555            1,
7556            0,
7557            p205pfs_by::Pidr,
7558            p205pfs_by::Pidr,
7559            P205PfsBy_SPEC,
7560            crate::common::R,
7561        >::from_register(self, 0)
7562    }
7563
7564    #[doc = "Port Direction"]
7565    #[inline(always)]
7566    pub fn pdr(
7567        self,
7568    ) -> crate::common::RegisterField<
7569        2,
7570        0x1,
7571        1,
7572        0,
7573        p205pfs_by::Pdr,
7574        p205pfs_by::Pdr,
7575        P205PfsBy_SPEC,
7576        crate::common::RW,
7577    > {
7578        crate::common::RegisterField::<
7579            2,
7580            0x1,
7581            1,
7582            0,
7583            p205pfs_by::Pdr,
7584            p205pfs_by::Pdr,
7585            P205PfsBy_SPEC,
7586            crate::common::RW,
7587        >::from_register(self, 0)
7588    }
7589
7590    #[doc = "Pull-up Control"]
7591    #[inline(always)]
7592    pub fn pcr(
7593        self,
7594    ) -> crate::common::RegisterField<
7595        4,
7596        0x1,
7597        1,
7598        0,
7599        p205pfs_by::Pcr,
7600        p205pfs_by::Pcr,
7601        P205PfsBy_SPEC,
7602        crate::common::RW,
7603    > {
7604        crate::common::RegisterField::<
7605            4,
7606            0x1,
7607            1,
7608            0,
7609            p205pfs_by::Pcr,
7610            p205pfs_by::Pcr,
7611            P205PfsBy_SPEC,
7612            crate::common::RW,
7613        >::from_register(self, 0)
7614    }
7615
7616    #[doc = "N-Channel Open-Drain Control"]
7617    #[inline(always)]
7618    pub fn ncodr(
7619        self,
7620    ) -> crate::common::RegisterField<
7621        6,
7622        0x1,
7623        1,
7624        0,
7625        p205pfs_by::Ncodr,
7626        p205pfs_by::Ncodr,
7627        P205PfsBy_SPEC,
7628        crate::common::RW,
7629    > {
7630        crate::common::RegisterField::<
7631            6,
7632            0x1,
7633            1,
7634            0,
7635            p205pfs_by::Ncodr,
7636            p205pfs_by::Ncodr,
7637            P205PfsBy_SPEC,
7638            crate::common::RW,
7639        >::from_register(self, 0)
7640    }
7641}
7642impl ::core::default::Default for P205PfsBy {
7643    #[inline(always)]
7644    fn default() -> P205PfsBy {
7645        <crate::RegValueT<P205PfsBy_SPEC> as RegisterValue<_>>::new(0)
7646    }
7647}
7648pub mod p205pfs_by {
7649
7650    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7651    pub struct Podr_SPEC;
7652    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
7653    impl Podr {
7654        #[doc = "Output low"]
7655        pub const _0: Self = Self::new(0);
7656
7657        #[doc = "Output high"]
7658        pub const _1: Self = Self::new(1);
7659    }
7660    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7661    pub struct Pidr_SPEC;
7662    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
7663    impl Pidr {
7664        #[doc = "Low level"]
7665        pub const _0: Self = Self::new(0);
7666
7667        #[doc = "High level"]
7668        pub const _1: Self = Self::new(1);
7669    }
7670    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7671    pub struct Pdr_SPEC;
7672    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
7673    impl Pdr {
7674        #[doc = "Input (functions as an input pin)"]
7675        pub const _0: Self = Self::new(0);
7676
7677        #[doc = "Output (functions as an output pin)"]
7678        pub const _1: Self = Self::new(1);
7679    }
7680    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7681    pub struct Pcr_SPEC;
7682    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
7683    impl Pcr {
7684        #[doc = "Disable input pull-up"]
7685        pub const _0: Self = Self::new(0);
7686
7687        #[doc = "Enable input pull-up"]
7688        pub const _1: Self = Self::new(1);
7689    }
7690    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7691    pub struct Ncodr_SPEC;
7692    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
7693    impl Ncodr {
7694        #[doc = "Output CMOS"]
7695        pub const _0: Self = Self::new(0);
7696
7697        #[doc = "Output NMOS open-drain"]
7698        pub const _1: Self = Self::new(1);
7699    }
7700}
7701#[doc(hidden)]
7702#[derive(Copy, Clone, Eq, PartialEq)]
7703pub struct P300Pfs_SPEC;
7704impl crate::sealed::RegSpec for P300Pfs_SPEC {
7705    type DataType = u32;
7706}
7707
7708#[doc = "Port 300 Pin Function Select Register"]
7709pub type P300Pfs = crate::RegValueT<P300Pfs_SPEC>;
7710
7711impl P300Pfs {
7712    #[doc = "Port Output Data"]
7713    #[inline(always)]
7714    pub fn podr(
7715        self,
7716    ) -> crate::common::RegisterField<
7717        0,
7718        0x1,
7719        1,
7720        0,
7721        p300pfs::Podr,
7722        p300pfs::Podr,
7723        P300Pfs_SPEC,
7724        crate::common::RW,
7725    > {
7726        crate::common::RegisterField::<
7727            0,
7728            0x1,
7729            1,
7730            0,
7731            p300pfs::Podr,
7732            p300pfs::Podr,
7733            P300Pfs_SPEC,
7734            crate::common::RW,
7735        >::from_register(self, 0)
7736    }
7737
7738    #[doc = "Port State"]
7739    #[inline(always)]
7740    pub fn pidr(
7741        self,
7742    ) -> crate::common::RegisterField<
7743        1,
7744        0x1,
7745        1,
7746        0,
7747        p300pfs::Pidr,
7748        p300pfs::Pidr,
7749        P300Pfs_SPEC,
7750        crate::common::R,
7751    > {
7752        crate::common::RegisterField::<
7753            1,
7754            0x1,
7755            1,
7756            0,
7757            p300pfs::Pidr,
7758            p300pfs::Pidr,
7759            P300Pfs_SPEC,
7760            crate::common::R,
7761        >::from_register(self, 0)
7762    }
7763
7764    #[doc = "Port Direction"]
7765    #[inline(always)]
7766    pub fn pdr(
7767        self,
7768    ) -> crate::common::RegisterField<
7769        2,
7770        0x1,
7771        1,
7772        0,
7773        p300pfs::Pdr,
7774        p300pfs::Pdr,
7775        P300Pfs_SPEC,
7776        crate::common::RW,
7777    > {
7778        crate::common::RegisterField::<
7779            2,
7780            0x1,
7781            1,
7782            0,
7783            p300pfs::Pdr,
7784            p300pfs::Pdr,
7785            P300Pfs_SPEC,
7786            crate::common::RW,
7787        >::from_register(self, 0)
7788    }
7789
7790    #[doc = "Pull-up Control"]
7791    #[inline(always)]
7792    pub fn pcr(
7793        self,
7794    ) -> crate::common::RegisterField<
7795        4,
7796        0x1,
7797        1,
7798        0,
7799        p300pfs::Pcr,
7800        p300pfs::Pcr,
7801        P300Pfs_SPEC,
7802        crate::common::RW,
7803    > {
7804        crate::common::RegisterField::<
7805            4,
7806            0x1,
7807            1,
7808            0,
7809            p300pfs::Pcr,
7810            p300pfs::Pcr,
7811            P300Pfs_SPEC,
7812            crate::common::RW,
7813        >::from_register(self, 0)
7814    }
7815
7816    #[doc = "N-Channel Open-Drain Control"]
7817    #[inline(always)]
7818    pub fn ncodr(
7819        self,
7820    ) -> crate::common::RegisterField<
7821        6,
7822        0x1,
7823        1,
7824        0,
7825        p300pfs::Ncodr,
7826        p300pfs::Ncodr,
7827        P300Pfs_SPEC,
7828        crate::common::RW,
7829    > {
7830        crate::common::RegisterField::<
7831            6,
7832            0x1,
7833            1,
7834            0,
7835            p300pfs::Ncodr,
7836            p300pfs::Ncodr,
7837            P300Pfs_SPEC,
7838            crate::common::RW,
7839        >::from_register(self, 0)
7840    }
7841
7842    #[doc = "IRQ Input Enable"]
7843    #[inline(always)]
7844    pub fn isel(
7845        self,
7846    ) -> crate::common::RegisterField<
7847        14,
7848        0x1,
7849        1,
7850        0,
7851        p300pfs::Isel,
7852        p300pfs::Isel,
7853        P300Pfs_SPEC,
7854        crate::common::RW,
7855    > {
7856        crate::common::RegisterField::<
7857            14,
7858            0x1,
7859            1,
7860            0,
7861            p300pfs::Isel,
7862            p300pfs::Isel,
7863            P300Pfs_SPEC,
7864            crate::common::RW,
7865        >::from_register(self, 0)
7866    }
7867
7868    #[doc = "Analog Input Enable"]
7869    #[inline(always)]
7870    pub fn asel(
7871        self,
7872    ) -> crate::common::RegisterField<
7873        15,
7874        0x1,
7875        1,
7876        0,
7877        p300pfs::Asel,
7878        p300pfs::Asel,
7879        P300Pfs_SPEC,
7880        crate::common::RW,
7881    > {
7882        crate::common::RegisterField::<
7883            15,
7884            0x1,
7885            1,
7886            0,
7887            p300pfs::Asel,
7888            p300pfs::Asel,
7889            P300Pfs_SPEC,
7890            crate::common::RW,
7891        >::from_register(self, 0)
7892    }
7893
7894    #[doc = "Port Mode Control"]
7895    #[inline(always)]
7896    pub fn pmr(
7897        self,
7898    ) -> crate::common::RegisterField<
7899        16,
7900        0x1,
7901        1,
7902        0,
7903        p300pfs::Pmr,
7904        p300pfs::Pmr,
7905        P300Pfs_SPEC,
7906        crate::common::RW,
7907    > {
7908        crate::common::RegisterField::<
7909            16,
7910            0x1,
7911            1,
7912            0,
7913            p300pfs::Pmr,
7914            p300pfs::Pmr,
7915            P300Pfs_SPEC,
7916            crate::common::RW,
7917        >::from_register(self, 0)
7918    }
7919
7920    #[doc = "Peripheral Select"]
7921    #[inline(always)]
7922    pub fn psel(
7923        self,
7924    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P300Pfs_SPEC, crate::common::RW> {
7925        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P300Pfs_SPEC,crate::common::RW>::from_register(self,0)
7926    }
7927}
7928impl ::core::default::Default for P300Pfs {
7929    #[inline(always)]
7930    fn default() -> P300Pfs {
7931        <crate::RegValueT<P300Pfs_SPEC> as RegisterValue<_>>::new(65536)
7932    }
7933}
7934pub mod p300pfs {
7935
7936    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7937    pub struct Podr_SPEC;
7938    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
7939    impl Podr {
7940        #[doc = "Output low"]
7941        pub const _0: Self = Self::new(0);
7942
7943        #[doc = "Output high"]
7944        pub const _1: Self = Self::new(1);
7945    }
7946    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7947    pub struct Pidr_SPEC;
7948    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
7949    impl Pidr {
7950        #[doc = "Low level"]
7951        pub const _0: Self = Self::new(0);
7952
7953        #[doc = "High level"]
7954        pub const _1: Self = Self::new(1);
7955    }
7956    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7957    pub struct Pdr_SPEC;
7958    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
7959    impl Pdr {
7960        #[doc = "Input (functions as an input pin)"]
7961        pub const _0: Self = Self::new(0);
7962
7963        #[doc = "Output (functions as an output pin)"]
7964        pub const _1: Self = Self::new(1);
7965    }
7966    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7967    pub struct Pcr_SPEC;
7968    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
7969    impl Pcr {
7970        #[doc = "Disable input pull-up"]
7971        pub const _0: Self = Self::new(0);
7972
7973        #[doc = "Enable input pull-up"]
7974        pub const _1: Self = Self::new(1);
7975    }
7976    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7977    pub struct Ncodr_SPEC;
7978    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
7979    impl Ncodr {
7980        #[doc = "Output CMOS"]
7981        pub const _0: Self = Self::new(0);
7982
7983        #[doc = "Output NMOS open-drain"]
7984        pub const _1: Self = Self::new(1);
7985    }
7986    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7987    pub struct Isel_SPEC;
7988    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
7989    impl Isel {
7990        #[doc = "Do not use as IRQn input pin"]
7991        pub const _0: Self = Self::new(0);
7992
7993        #[doc = "Use as IRQn input pin"]
7994        pub const _1: Self = Self::new(1);
7995    }
7996    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
7997    pub struct Asel_SPEC;
7998    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
7999    impl Asel {
8000        #[doc = "Do not use as analog pin"]
8001        pub const _0: Self = Self::new(0);
8002
8003        #[doc = "Use as analog pin"]
8004        pub const _1: Self = Self::new(1);
8005    }
8006    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8007    pub struct Pmr_SPEC;
8008    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
8009    impl Pmr {
8010        #[doc = "Use as general I/O pin"]
8011        pub const _0: Self = Self::new(0);
8012
8013        #[doc = "Use as I/O port for peripheral functions"]
8014        pub const _1: Self = Self::new(1);
8015    }
8016}
8017#[doc(hidden)]
8018#[derive(Copy, Clone, Eq, PartialEq)]
8019pub struct P300PfsHa_SPEC;
8020impl crate::sealed::RegSpec for P300PfsHa_SPEC {
8021    type DataType = u16;
8022}
8023
8024#[doc = "Port 300 Pin Function Select Register"]
8025pub type P300PfsHa = crate::RegValueT<P300PfsHa_SPEC>;
8026
8027impl P300PfsHa {
8028    #[doc = "Port Output Data"]
8029    #[inline(always)]
8030    pub fn podr(
8031        self,
8032    ) -> crate::common::RegisterField<
8033        0,
8034        0x1,
8035        1,
8036        0,
8037        p300pfs_ha::Podr,
8038        p300pfs_ha::Podr,
8039        P300PfsHa_SPEC,
8040        crate::common::RW,
8041    > {
8042        crate::common::RegisterField::<
8043            0,
8044            0x1,
8045            1,
8046            0,
8047            p300pfs_ha::Podr,
8048            p300pfs_ha::Podr,
8049            P300PfsHa_SPEC,
8050            crate::common::RW,
8051        >::from_register(self, 0)
8052    }
8053
8054    #[doc = "Port State"]
8055    #[inline(always)]
8056    pub fn pidr(
8057        self,
8058    ) -> crate::common::RegisterField<
8059        1,
8060        0x1,
8061        1,
8062        0,
8063        p300pfs_ha::Pidr,
8064        p300pfs_ha::Pidr,
8065        P300PfsHa_SPEC,
8066        crate::common::R,
8067    > {
8068        crate::common::RegisterField::<
8069            1,
8070            0x1,
8071            1,
8072            0,
8073            p300pfs_ha::Pidr,
8074            p300pfs_ha::Pidr,
8075            P300PfsHa_SPEC,
8076            crate::common::R,
8077        >::from_register(self, 0)
8078    }
8079
8080    #[doc = "Port Direction"]
8081    #[inline(always)]
8082    pub fn pdr(
8083        self,
8084    ) -> crate::common::RegisterField<
8085        2,
8086        0x1,
8087        1,
8088        0,
8089        p300pfs_ha::Pdr,
8090        p300pfs_ha::Pdr,
8091        P300PfsHa_SPEC,
8092        crate::common::RW,
8093    > {
8094        crate::common::RegisterField::<
8095            2,
8096            0x1,
8097            1,
8098            0,
8099            p300pfs_ha::Pdr,
8100            p300pfs_ha::Pdr,
8101            P300PfsHa_SPEC,
8102            crate::common::RW,
8103        >::from_register(self, 0)
8104    }
8105
8106    #[doc = "Pull-up Control"]
8107    #[inline(always)]
8108    pub fn pcr(
8109        self,
8110    ) -> crate::common::RegisterField<
8111        4,
8112        0x1,
8113        1,
8114        0,
8115        p300pfs_ha::Pcr,
8116        p300pfs_ha::Pcr,
8117        P300PfsHa_SPEC,
8118        crate::common::RW,
8119    > {
8120        crate::common::RegisterField::<
8121            4,
8122            0x1,
8123            1,
8124            0,
8125            p300pfs_ha::Pcr,
8126            p300pfs_ha::Pcr,
8127            P300PfsHa_SPEC,
8128            crate::common::RW,
8129        >::from_register(self, 0)
8130    }
8131
8132    #[doc = "N-Channel Open-Drain Control"]
8133    #[inline(always)]
8134    pub fn ncodr(
8135        self,
8136    ) -> crate::common::RegisterField<
8137        6,
8138        0x1,
8139        1,
8140        0,
8141        p300pfs_ha::Ncodr,
8142        p300pfs_ha::Ncodr,
8143        P300PfsHa_SPEC,
8144        crate::common::RW,
8145    > {
8146        crate::common::RegisterField::<
8147            6,
8148            0x1,
8149            1,
8150            0,
8151            p300pfs_ha::Ncodr,
8152            p300pfs_ha::Ncodr,
8153            P300PfsHa_SPEC,
8154            crate::common::RW,
8155        >::from_register(self, 0)
8156    }
8157
8158    #[doc = "IRQ Input Enable"]
8159    #[inline(always)]
8160    pub fn isel(
8161        self,
8162    ) -> crate::common::RegisterField<
8163        14,
8164        0x1,
8165        1,
8166        0,
8167        p300pfs_ha::Isel,
8168        p300pfs_ha::Isel,
8169        P300PfsHa_SPEC,
8170        crate::common::RW,
8171    > {
8172        crate::common::RegisterField::<
8173            14,
8174            0x1,
8175            1,
8176            0,
8177            p300pfs_ha::Isel,
8178            p300pfs_ha::Isel,
8179            P300PfsHa_SPEC,
8180            crate::common::RW,
8181        >::from_register(self, 0)
8182    }
8183
8184    #[doc = "Analog Input Enable"]
8185    #[inline(always)]
8186    pub fn asel(
8187        self,
8188    ) -> crate::common::RegisterField<
8189        15,
8190        0x1,
8191        1,
8192        0,
8193        p300pfs_ha::Asel,
8194        p300pfs_ha::Asel,
8195        P300PfsHa_SPEC,
8196        crate::common::RW,
8197    > {
8198        crate::common::RegisterField::<
8199            15,
8200            0x1,
8201            1,
8202            0,
8203            p300pfs_ha::Asel,
8204            p300pfs_ha::Asel,
8205            P300PfsHa_SPEC,
8206            crate::common::RW,
8207        >::from_register(self, 0)
8208    }
8209}
8210impl ::core::default::Default for P300PfsHa {
8211    #[inline(always)]
8212    fn default() -> P300PfsHa {
8213        <crate::RegValueT<P300PfsHa_SPEC> as RegisterValue<_>>::new(0)
8214    }
8215}
8216pub mod p300pfs_ha {
8217
8218    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8219    pub struct Podr_SPEC;
8220    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8221    impl Podr {
8222        #[doc = "Output low"]
8223        pub const _0: Self = Self::new(0);
8224
8225        #[doc = "Output high"]
8226        pub const _1: Self = Self::new(1);
8227    }
8228    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8229    pub struct Pidr_SPEC;
8230    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8231    impl Pidr {
8232        #[doc = "Low level"]
8233        pub const _0: Self = Self::new(0);
8234
8235        #[doc = "High level"]
8236        pub const _1: Self = Self::new(1);
8237    }
8238    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8239    pub struct Pdr_SPEC;
8240    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8241    impl Pdr {
8242        #[doc = "Input (functions as an input pin)"]
8243        pub const _0: Self = Self::new(0);
8244
8245        #[doc = "Output (functions as an output pin)"]
8246        pub const _1: Self = Self::new(1);
8247    }
8248    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8249    pub struct Pcr_SPEC;
8250    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8251    impl Pcr {
8252        #[doc = "Disable input pull-up"]
8253        pub const _0: Self = Self::new(0);
8254
8255        #[doc = "Enable input pull-up"]
8256        pub const _1: Self = Self::new(1);
8257    }
8258    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8259    pub struct Ncodr_SPEC;
8260    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8261    impl Ncodr {
8262        #[doc = "Output CMOS"]
8263        pub const _0: Self = Self::new(0);
8264
8265        #[doc = "Output NMOS open-drain"]
8266        pub const _1: Self = Self::new(1);
8267    }
8268    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8269    pub struct Isel_SPEC;
8270    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
8271    impl Isel {
8272        #[doc = "Do not use as IRQn input pin"]
8273        pub const _0: Self = Self::new(0);
8274
8275        #[doc = "Use as IRQn input pin"]
8276        pub const _1: Self = Self::new(1);
8277    }
8278    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8279    pub struct Asel_SPEC;
8280    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
8281    impl Asel {
8282        #[doc = "Do not use as analog pin"]
8283        pub const _0: Self = Self::new(0);
8284
8285        #[doc = "Use as analog pin"]
8286        pub const _1: Self = Self::new(1);
8287    }
8288}
8289#[doc(hidden)]
8290#[derive(Copy, Clone, Eq, PartialEq)]
8291pub struct P300PfsBy_SPEC;
8292impl crate::sealed::RegSpec for P300PfsBy_SPEC {
8293    type DataType = u8;
8294}
8295
8296#[doc = "Port 300 Pin Function Select Register"]
8297pub type P300PfsBy = crate::RegValueT<P300PfsBy_SPEC>;
8298
8299impl P300PfsBy {
8300    #[doc = "Port Output Data"]
8301    #[inline(always)]
8302    pub fn podr(
8303        self,
8304    ) -> crate::common::RegisterField<
8305        0,
8306        0x1,
8307        1,
8308        0,
8309        p300pfs_by::Podr,
8310        p300pfs_by::Podr,
8311        P300PfsBy_SPEC,
8312        crate::common::RW,
8313    > {
8314        crate::common::RegisterField::<
8315            0,
8316            0x1,
8317            1,
8318            0,
8319            p300pfs_by::Podr,
8320            p300pfs_by::Podr,
8321            P300PfsBy_SPEC,
8322            crate::common::RW,
8323        >::from_register(self, 0)
8324    }
8325
8326    #[doc = "Port State"]
8327    #[inline(always)]
8328    pub fn pidr(
8329        self,
8330    ) -> crate::common::RegisterField<
8331        1,
8332        0x1,
8333        1,
8334        0,
8335        p300pfs_by::Pidr,
8336        p300pfs_by::Pidr,
8337        P300PfsBy_SPEC,
8338        crate::common::R,
8339    > {
8340        crate::common::RegisterField::<
8341            1,
8342            0x1,
8343            1,
8344            0,
8345            p300pfs_by::Pidr,
8346            p300pfs_by::Pidr,
8347            P300PfsBy_SPEC,
8348            crate::common::R,
8349        >::from_register(self, 0)
8350    }
8351
8352    #[doc = "Port Direction"]
8353    #[inline(always)]
8354    pub fn pdr(
8355        self,
8356    ) -> crate::common::RegisterField<
8357        2,
8358        0x1,
8359        1,
8360        0,
8361        p300pfs_by::Pdr,
8362        p300pfs_by::Pdr,
8363        P300PfsBy_SPEC,
8364        crate::common::RW,
8365    > {
8366        crate::common::RegisterField::<
8367            2,
8368            0x1,
8369            1,
8370            0,
8371            p300pfs_by::Pdr,
8372            p300pfs_by::Pdr,
8373            P300PfsBy_SPEC,
8374            crate::common::RW,
8375        >::from_register(self, 0)
8376    }
8377
8378    #[doc = "Pull-up Control"]
8379    #[inline(always)]
8380    pub fn pcr(
8381        self,
8382    ) -> crate::common::RegisterField<
8383        4,
8384        0x1,
8385        1,
8386        0,
8387        p300pfs_by::Pcr,
8388        p300pfs_by::Pcr,
8389        P300PfsBy_SPEC,
8390        crate::common::RW,
8391    > {
8392        crate::common::RegisterField::<
8393            4,
8394            0x1,
8395            1,
8396            0,
8397            p300pfs_by::Pcr,
8398            p300pfs_by::Pcr,
8399            P300PfsBy_SPEC,
8400            crate::common::RW,
8401        >::from_register(self, 0)
8402    }
8403
8404    #[doc = "N-Channel Open-Drain Control"]
8405    #[inline(always)]
8406    pub fn ncodr(
8407        self,
8408    ) -> crate::common::RegisterField<
8409        6,
8410        0x1,
8411        1,
8412        0,
8413        p300pfs_by::Ncodr,
8414        p300pfs_by::Ncodr,
8415        P300PfsBy_SPEC,
8416        crate::common::RW,
8417    > {
8418        crate::common::RegisterField::<
8419            6,
8420            0x1,
8421            1,
8422            0,
8423            p300pfs_by::Ncodr,
8424            p300pfs_by::Ncodr,
8425            P300PfsBy_SPEC,
8426            crate::common::RW,
8427        >::from_register(self, 0)
8428    }
8429}
8430impl ::core::default::Default for P300PfsBy {
8431    #[inline(always)]
8432    fn default() -> P300PfsBy {
8433        <crate::RegValueT<P300PfsBy_SPEC> as RegisterValue<_>>::new(0)
8434    }
8435}
8436pub mod p300pfs_by {
8437
8438    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8439    pub struct Podr_SPEC;
8440    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8441    impl Podr {
8442        #[doc = "Output low"]
8443        pub const _0: Self = Self::new(0);
8444
8445        #[doc = "Output high"]
8446        pub const _1: Self = Self::new(1);
8447    }
8448    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8449    pub struct Pidr_SPEC;
8450    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8451    impl Pidr {
8452        #[doc = "Low level"]
8453        pub const _0: Self = Self::new(0);
8454
8455        #[doc = "High level"]
8456        pub const _1: Self = Self::new(1);
8457    }
8458    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8459    pub struct Pdr_SPEC;
8460    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8461    impl Pdr {
8462        #[doc = "Input (functions as an input pin)"]
8463        pub const _0: Self = Self::new(0);
8464
8465        #[doc = "Output (functions as an output pin)"]
8466        pub const _1: Self = Self::new(1);
8467    }
8468    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8469    pub struct Pcr_SPEC;
8470    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8471    impl Pcr {
8472        #[doc = "Disable input pull-up"]
8473        pub const _0: Self = Self::new(0);
8474
8475        #[doc = "Enable input pull-up"]
8476        pub const _1: Self = Self::new(1);
8477    }
8478    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8479    pub struct Ncodr_SPEC;
8480    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8481    impl Ncodr {
8482        #[doc = "Output CMOS"]
8483        pub const _0: Self = Self::new(0);
8484
8485        #[doc = "Output NMOS open-drain"]
8486        pub const _1: Self = Self::new(1);
8487    }
8488}
8489#[doc(hidden)]
8490#[derive(Copy, Clone, Eq, PartialEq)]
8491pub struct P40Pfs_SPEC;
8492impl crate::sealed::RegSpec for P40Pfs_SPEC {
8493    type DataType = u32;
8494}
8495
8496#[doc = "Port 40%s Pin Function Select Register"]
8497pub type P40Pfs = crate::RegValueT<P40Pfs_SPEC>;
8498
8499impl P40Pfs {
8500    #[doc = "Port Output Data"]
8501    #[inline(always)]
8502    pub fn podr(
8503        self,
8504    ) -> crate::common::RegisterField<
8505        0,
8506        0x1,
8507        1,
8508        0,
8509        p40pfs::Podr,
8510        p40pfs::Podr,
8511        P40Pfs_SPEC,
8512        crate::common::RW,
8513    > {
8514        crate::common::RegisterField::<
8515            0,
8516            0x1,
8517            1,
8518            0,
8519            p40pfs::Podr,
8520            p40pfs::Podr,
8521            P40Pfs_SPEC,
8522            crate::common::RW,
8523        >::from_register(self, 0)
8524    }
8525
8526    #[doc = "Port State"]
8527    #[inline(always)]
8528    pub fn pidr(
8529        self,
8530    ) -> crate::common::RegisterField<
8531        1,
8532        0x1,
8533        1,
8534        0,
8535        p40pfs::Pidr,
8536        p40pfs::Pidr,
8537        P40Pfs_SPEC,
8538        crate::common::R,
8539    > {
8540        crate::common::RegisterField::<
8541            1,
8542            0x1,
8543            1,
8544            0,
8545            p40pfs::Pidr,
8546            p40pfs::Pidr,
8547            P40Pfs_SPEC,
8548            crate::common::R,
8549        >::from_register(self, 0)
8550    }
8551
8552    #[doc = "Port Direction"]
8553    #[inline(always)]
8554    pub fn pdr(
8555        self,
8556    ) -> crate::common::RegisterField<
8557        2,
8558        0x1,
8559        1,
8560        0,
8561        p40pfs::Pdr,
8562        p40pfs::Pdr,
8563        P40Pfs_SPEC,
8564        crate::common::RW,
8565    > {
8566        crate::common::RegisterField::<
8567            2,
8568            0x1,
8569            1,
8570            0,
8571            p40pfs::Pdr,
8572            p40pfs::Pdr,
8573            P40Pfs_SPEC,
8574            crate::common::RW,
8575        >::from_register(self, 0)
8576    }
8577
8578    #[doc = "Pull-up Control"]
8579    #[inline(always)]
8580    pub fn pcr(
8581        self,
8582    ) -> crate::common::RegisterField<
8583        4,
8584        0x1,
8585        1,
8586        0,
8587        p40pfs::Pcr,
8588        p40pfs::Pcr,
8589        P40Pfs_SPEC,
8590        crate::common::RW,
8591    > {
8592        crate::common::RegisterField::<
8593            4,
8594            0x1,
8595            1,
8596            0,
8597            p40pfs::Pcr,
8598            p40pfs::Pcr,
8599            P40Pfs_SPEC,
8600            crate::common::RW,
8601        >::from_register(self, 0)
8602    }
8603
8604    #[doc = "N-Channel Open-Drain Control"]
8605    #[inline(always)]
8606    pub fn ncodr(
8607        self,
8608    ) -> crate::common::RegisterField<
8609        6,
8610        0x1,
8611        1,
8612        0,
8613        p40pfs::Ncodr,
8614        p40pfs::Ncodr,
8615        P40Pfs_SPEC,
8616        crate::common::RW,
8617    > {
8618        crate::common::RegisterField::<
8619            6,
8620            0x1,
8621            1,
8622            0,
8623            p40pfs::Ncodr,
8624            p40pfs::Ncodr,
8625            P40Pfs_SPEC,
8626            crate::common::RW,
8627        >::from_register(self, 0)
8628    }
8629
8630    #[doc = "IRQ Input Enable"]
8631    #[inline(always)]
8632    pub fn isel(
8633        self,
8634    ) -> crate::common::RegisterField<
8635        14,
8636        0x1,
8637        1,
8638        0,
8639        p40pfs::Isel,
8640        p40pfs::Isel,
8641        P40Pfs_SPEC,
8642        crate::common::RW,
8643    > {
8644        crate::common::RegisterField::<
8645            14,
8646            0x1,
8647            1,
8648            0,
8649            p40pfs::Isel,
8650            p40pfs::Isel,
8651            P40Pfs_SPEC,
8652            crate::common::RW,
8653        >::from_register(self, 0)
8654    }
8655
8656    #[doc = "Analog Input Enable"]
8657    #[inline(always)]
8658    pub fn asel(
8659        self,
8660    ) -> crate::common::RegisterField<
8661        15,
8662        0x1,
8663        1,
8664        0,
8665        p40pfs::Asel,
8666        p40pfs::Asel,
8667        P40Pfs_SPEC,
8668        crate::common::RW,
8669    > {
8670        crate::common::RegisterField::<
8671            15,
8672            0x1,
8673            1,
8674            0,
8675            p40pfs::Asel,
8676            p40pfs::Asel,
8677            P40Pfs_SPEC,
8678            crate::common::RW,
8679        >::from_register(self, 0)
8680    }
8681
8682    #[doc = "Port Mode Control"]
8683    #[inline(always)]
8684    pub fn pmr(
8685        self,
8686    ) -> crate::common::RegisterField<
8687        16,
8688        0x1,
8689        1,
8690        0,
8691        p40pfs::Pmr,
8692        p40pfs::Pmr,
8693        P40Pfs_SPEC,
8694        crate::common::RW,
8695    > {
8696        crate::common::RegisterField::<
8697            16,
8698            0x1,
8699            1,
8700            0,
8701            p40pfs::Pmr,
8702            p40pfs::Pmr,
8703            P40Pfs_SPEC,
8704            crate::common::RW,
8705        >::from_register(self, 0)
8706    }
8707
8708    #[doc = "Peripheral Select"]
8709    #[inline(always)]
8710    pub fn psel(
8711        self,
8712    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P40Pfs_SPEC, crate::common::RW> {
8713        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P40Pfs_SPEC,crate::common::RW>::from_register(self,0)
8714    }
8715}
8716impl ::core::default::Default for P40Pfs {
8717    #[inline(always)]
8718    fn default() -> P40Pfs {
8719        <crate::RegValueT<P40Pfs_SPEC> as RegisterValue<_>>::new(0)
8720    }
8721}
8722pub mod p40pfs {
8723
8724    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8725    pub struct Podr_SPEC;
8726    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
8727    impl Podr {
8728        #[doc = "Output low"]
8729        pub const _0: Self = Self::new(0);
8730
8731        #[doc = "Output high"]
8732        pub const _1: Self = Self::new(1);
8733    }
8734    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8735    pub struct Pidr_SPEC;
8736    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
8737    impl Pidr {
8738        #[doc = "Low level"]
8739        pub const _0: Self = Self::new(0);
8740
8741        #[doc = "High level"]
8742        pub const _1: Self = Self::new(1);
8743    }
8744    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8745    pub struct Pdr_SPEC;
8746    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
8747    impl Pdr {
8748        #[doc = "Input (functions as an input pin)"]
8749        pub const _0: Self = Self::new(0);
8750
8751        #[doc = "Output (functions as an output pin)"]
8752        pub const _1: Self = Self::new(1);
8753    }
8754    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8755    pub struct Pcr_SPEC;
8756    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
8757    impl Pcr {
8758        #[doc = "Disable input pull-up"]
8759        pub const _0: Self = Self::new(0);
8760
8761        #[doc = "Enable input pull-up"]
8762        pub const _1: Self = Self::new(1);
8763    }
8764    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8765    pub struct Ncodr_SPEC;
8766    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
8767    impl Ncodr {
8768        #[doc = "Output CMOS"]
8769        pub const _0: Self = Self::new(0);
8770
8771        #[doc = "Output NMOS open-drain"]
8772        pub const _1: Self = Self::new(1);
8773    }
8774    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8775    pub struct Isel_SPEC;
8776    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
8777    impl Isel {
8778        #[doc = "Do not use as IRQn input pin"]
8779        pub const _0: Self = Self::new(0);
8780
8781        #[doc = "Use as IRQn input pin"]
8782        pub const _1: Self = Self::new(1);
8783    }
8784    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8785    pub struct Asel_SPEC;
8786    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
8787    impl Asel {
8788        #[doc = "Do not use as analog pin"]
8789        pub const _0: Self = Self::new(0);
8790
8791        #[doc = "Use as analog pin"]
8792        pub const _1: Self = Self::new(1);
8793    }
8794    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
8795    pub struct Pmr_SPEC;
8796    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
8797    impl Pmr {
8798        #[doc = "Use as general I/O pin"]
8799        pub const _0: Self = Self::new(0);
8800
8801        #[doc = "Use as I/O port for peripheral functions"]
8802        pub const _1: Self = Self::new(1);
8803    }
8804}
8805#[doc(hidden)]
8806#[derive(Copy, Clone, Eq, PartialEq)]
8807pub struct P40PfsHa_SPEC;
8808impl crate::sealed::RegSpec for P40PfsHa_SPEC {
8809    type DataType = u16;
8810}
8811
8812#[doc = "Port 40%s Pin Function Select Register"]
8813pub type P40PfsHa = crate::RegValueT<P40PfsHa_SPEC>;
8814
8815impl P40PfsHa {
8816    #[doc = "Port Output Data"]
8817    #[inline(always)]
8818    pub fn podr(
8819        self,
8820    ) -> crate::common::RegisterField<
8821        0,
8822        0x1,
8823        1,
8824        0,
8825        p40pfs_ha::Podr,
8826        p40pfs_ha::Podr,
8827        P40PfsHa_SPEC,
8828        crate::common::RW,
8829    > {
8830        crate::common::RegisterField::<
8831            0,
8832            0x1,
8833            1,
8834            0,
8835            p40pfs_ha::Podr,
8836            p40pfs_ha::Podr,
8837            P40PfsHa_SPEC,
8838            crate::common::RW,
8839        >::from_register(self, 0)
8840    }
8841
8842    #[doc = "Port State"]
8843    #[inline(always)]
8844    pub fn pidr(
8845        self,
8846    ) -> crate::common::RegisterField<
8847        1,
8848        0x1,
8849        1,
8850        0,
8851        p40pfs_ha::Pidr,
8852        p40pfs_ha::Pidr,
8853        P40PfsHa_SPEC,
8854        crate::common::R,
8855    > {
8856        crate::common::RegisterField::<
8857            1,
8858            0x1,
8859            1,
8860            0,
8861            p40pfs_ha::Pidr,
8862            p40pfs_ha::Pidr,
8863            P40PfsHa_SPEC,
8864            crate::common::R,
8865        >::from_register(self, 0)
8866    }
8867
8868    #[doc = "Port Direction"]
8869    #[inline(always)]
8870    pub fn pdr(
8871        self,
8872    ) -> crate::common::RegisterField<
8873        2,
8874        0x1,
8875        1,
8876        0,
8877        p40pfs_ha::Pdr,
8878        p40pfs_ha::Pdr,
8879        P40PfsHa_SPEC,
8880        crate::common::RW,
8881    > {
8882        crate::common::RegisterField::<
8883            2,
8884            0x1,
8885            1,
8886            0,
8887            p40pfs_ha::Pdr,
8888            p40pfs_ha::Pdr,
8889            P40PfsHa_SPEC,
8890            crate::common::RW,
8891        >::from_register(self, 0)
8892    }
8893
8894    #[doc = "Pull-up Control"]
8895    #[inline(always)]
8896    pub fn pcr(
8897        self,
8898    ) -> crate::common::RegisterField<
8899        4,
8900        0x1,
8901        1,
8902        0,
8903        p40pfs_ha::Pcr,
8904        p40pfs_ha::Pcr,
8905        P40PfsHa_SPEC,
8906        crate::common::RW,
8907    > {
8908        crate::common::RegisterField::<
8909            4,
8910            0x1,
8911            1,
8912            0,
8913            p40pfs_ha::Pcr,
8914            p40pfs_ha::Pcr,
8915            P40PfsHa_SPEC,
8916            crate::common::RW,
8917        >::from_register(self, 0)
8918    }
8919
8920    #[doc = "N-Channel Open-Drain Control"]
8921    #[inline(always)]
8922    pub fn ncodr(
8923        self,
8924    ) -> crate::common::RegisterField<
8925        6,
8926        0x1,
8927        1,
8928        0,
8929        p40pfs_ha::Ncodr,
8930        p40pfs_ha::Ncodr,
8931        P40PfsHa_SPEC,
8932        crate::common::RW,
8933    > {
8934        crate::common::RegisterField::<
8935            6,
8936            0x1,
8937            1,
8938            0,
8939            p40pfs_ha::Ncodr,
8940            p40pfs_ha::Ncodr,
8941            P40PfsHa_SPEC,
8942            crate::common::RW,
8943        >::from_register(self, 0)
8944    }
8945
8946    #[doc = "IRQ Input Enable"]
8947    #[inline(always)]
8948    pub fn isel(
8949        self,
8950    ) -> crate::common::RegisterField<
8951        14,
8952        0x1,
8953        1,
8954        0,
8955        p40pfs_ha::Isel,
8956        p40pfs_ha::Isel,
8957        P40PfsHa_SPEC,
8958        crate::common::RW,
8959    > {
8960        crate::common::RegisterField::<
8961            14,
8962            0x1,
8963            1,
8964            0,
8965            p40pfs_ha::Isel,
8966            p40pfs_ha::Isel,
8967            P40PfsHa_SPEC,
8968            crate::common::RW,
8969        >::from_register(self, 0)
8970    }
8971
8972    #[doc = "Analog Input Enable"]
8973    #[inline(always)]
8974    pub fn asel(
8975        self,
8976    ) -> crate::common::RegisterField<
8977        15,
8978        0x1,
8979        1,
8980        0,
8981        p40pfs_ha::Asel,
8982        p40pfs_ha::Asel,
8983        P40PfsHa_SPEC,
8984        crate::common::RW,
8985    > {
8986        crate::common::RegisterField::<
8987            15,
8988            0x1,
8989            1,
8990            0,
8991            p40pfs_ha::Asel,
8992            p40pfs_ha::Asel,
8993            P40PfsHa_SPEC,
8994            crate::common::RW,
8995        >::from_register(self, 0)
8996    }
8997}
8998impl ::core::default::Default for P40PfsHa {
8999    #[inline(always)]
9000    fn default() -> P40PfsHa {
9001        <crate::RegValueT<P40PfsHa_SPEC> as RegisterValue<_>>::new(0)
9002    }
9003}
9004pub mod p40pfs_ha {
9005
9006    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9007    pub struct Podr_SPEC;
9008    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
9009    impl Podr {
9010        #[doc = "Output low"]
9011        pub const _0: Self = Self::new(0);
9012
9013        #[doc = "Output high"]
9014        pub const _1: Self = Self::new(1);
9015    }
9016    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9017    pub struct Pidr_SPEC;
9018    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
9019    impl Pidr {
9020        #[doc = "Low level"]
9021        pub const _0: Self = Self::new(0);
9022
9023        #[doc = "High level"]
9024        pub const _1: Self = Self::new(1);
9025    }
9026    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9027    pub struct Pdr_SPEC;
9028    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
9029    impl Pdr {
9030        #[doc = "Input (functions as an input pin)"]
9031        pub const _0: Self = Self::new(0);
9032
9033        #[doc = "Output (functions as an output pin)"]
9034        pub const _1: Self = Self::new(1);
9035    }
9036    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9037    pub struct Pcr_SPEC;
9038    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
9039    impl Pcr {
9040        #[doc = "Disable input pull-up"]
9041        pub const _0: Self = Self::new(0);
9042
9043        #[doc = "Enable input pull-up"]
9044        pub const _1: Self = Self::new(1);
9045    }
9046    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9047    pub struct Ncodr_SPEC;
9048    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
9049    impl Ncodr {
9050        #[doc = "Output CMOS"]
9051        pub const _0: Self = Self::new(0);
9052
9053        #[doc = "Output NMOS open-drain"]
9054        pub const _1: Self = Self::new(1);
9055    }
9056    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9057    pub struct Isel_SPEC;
9058    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
9059    impl Isel {
9060        #[doc = "Do not use as IRQn input pin"]
9061        pub const _0: Self = Self::new(0);
9062
9063        #[doc = "Use as IRQn input pin"]
9064        pub const _1: Self = Self::new(1);
9065    }
9066    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9067    pub struct Asel_SPEC;
9068    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
9069    impl Asel {
9070        #[doc = "Do not use as analog pin"]
9071        pub const _0: Self = Self::new(0);
9072
9073        #[doc = "Use as analog pin"]
9074        pub const _1: Self = Self::new(1);
9075    }
9076}
9077#[doc(hidden)]
9078#[derive(Copy, Clone, Eq, PartialEq)]
9079pub struct P40PfsBy_SPEC;
9080impl crate::sealed::RegSpec for P40PfsBy_SPEC {
9081    type DataType = u8;
9082}
9083
9084#[doc = "Port 40%s Pin Function Select Register"]
9085pub type P40PfsBy = crate::RegValueT<P40PfsBy_SPEC>;
9086
9087impl P40PfsBy {
9088    #[doc = "Port Output Data"]
9089    #[inline(always)]
9090    pub fn podr(
9091        self,
9092    ) -> crate::common::RegisterField<
9093        0,
9094        0x1,
9095        1,
9096        0,
9097        p40pfs_by::Podr,
9098        p40pfs_by::Podr,
9099        P40PfsBy_SPEC,
9100        crate::common::RW,
9101    > {
9102        crate::common::RegisterField::<
9103            0,
9104            0x1,
9105            1,
9106            0,
9107            p40pfs_by::Podr,
9108            p40pfs_by::Podr,
9109            P40PfsBy_SPEC,
9110            crate::common::RW,
9111        >::from_register(self, 0)
9112    }
9113
9114    #[doc = "Port State"]
9115    #[inline(always)]
9116    pub fn pidr(
9117        self,
9118    ) -> crate::common::RegisterField<
9119        1,
9120        0x1,
9121        1,
9122        0,
9123        p40pfs_by::Pidr,
9124        p40pfs_by::Pidr,
9125        P40PfsBy_SPEC,
9126        crate::common::R,
9127    > {
9128        crate::common::RegisterField::<
9129            1,
9130            0x1,
9131            1,
9132            0,
9133            p40pfs_by::Pidr,
9134            p40pfs_by::Pidr,
9135            P40PfsBy_SPEC,
9136            crate::common::R,
9137        >::from_register(self, 0)
9138    }
9139
9140    #[doc = "Port Direction"]
9141    #[inline(always)]
9142    pub fn pdr(
9143        self,
9144    ) -> crate::common::RegisterField<
9145        2,
9146        0x1,
9147        1,
9148        0,
9149        p40pfs_by::Pdr,
9150        p40pfs_by::Pdr,
9151        P40PfsBy_SPEC,
9152        crate::common::RW,
9153    > {
9154        crate::common::RegisterField::<
9155            2,
9156            0x1,
9157            1,
9158            0,
9159            p40pfs_by::Pdr,
9160            p40pfs_by::Pdr,
9161            P40PfsBy_SPEC,
9162            crate::common::RW,
9163        >::from_register(self, 0)
9164    }
9165
9166    #[doc = "Pull-up Control"]
9167    #[inline(always)]
9168    pub fn pcr(
9169        self,
9170    ) -> crate::common::RegisterField<
9171        4,
9172        0x1,
9173        1,
9174        0,
9175        p40pfs_by::Pcr,
9176        p40pfs_by::Pcr,
9177        P40PfsBy_SPEC,
9178        crate::common::RW,
9179    > {
9180        crate::common::RegisterField::<
9181            4,
9182            0x1,
9183            1,
9184            0,
9185            p40pfs_by::Pcr,
9186            p40pfs_by::Pcr,
9187            P40PfsBy_SPEC,
9188            crate::common::RW,
9189        >::from_register(self, 0)
9190    }
9191
9192    #[doc = "N-Channel Open-Drain Control"]
9193    #[inline(always)]
9194    pub fn ncodr(
9195        self,
9196    ) -> crate::common::RegisterField<
9197        6,
9198        0x1,
9199        1,
9200        0,
9201        p40pfs_by::Ncodr,
9202        p40pfs_by::Ncodr,
9203        P40PfsBy_SPEC,
9204        crate::common::RW,
9205    > {
9206        crate::common::RegisterField::<
9207            6,
9208            0x1,
9209            1,
9210            0,
9211            p40pfs_by::Ncodr,
9212            p40pfs_by::Ncodr,
9213            P40PfsBy_SPEC,
9214            crate::common::RW,
9215        >::from_register(self, 0)
9216    }
9217}
9218impl ::core::default::Default for P40PfsBy {
9219    #[inline(always)]
9220    fn default() -> P40PfsBy {
9221        <crate::RegValueT<P40PfsBy_SPEC> as RegisterValue<_>>::new(0)
9222    }
9223}
9224pub mod p40pfs_by {
9225
9226    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9227    pub struct Podr_SPEC;
9228    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
9229    impl Podr {
9230        #[doc = "Output low"]
9231        pub const _0: Self = Self::new(0);
9232
9233        #[doc = "Output high"]
9234        pub const _1: Self = Self::new(1);
9235    }
9236    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9237    pub struct Pidr_SPEC;
9238    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
9239    impl Pidr {
9240        #[doc = "Low level"]
9241        pub const _0: Self = Self::new(0);
9242
9243        #[doc = "High level"]
9244        pub const _1: Self = Self::new(1);
9245    }
9246    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9247    pub struct Pdr_SPEC;
9248    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
9249    impl Pdr {
9250        #[doc = "Input (functions as an input pin)"]
9251        pub const _0: Self = Self::new(0);
9252
9253        #[doc = "Output (functions as an output pin)"]
9254        pub const _1: Self = Self::new(1);
9255    }
9256    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9257    pub struct Pcr_SPEC;
9258    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
9259    impl Pcr {
9260        #[doc = "Disable input pull-up"]
9261        pub const _0: Self = Self::new(0);
9262
9263        #[doc = "Enable input pull-up"]
9264        pub const _1: Self = Self::new(1);
9265    }
9266    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9267    pub struct Ncodr_SPEC;
9268    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
9269    impl Ncodr {
9270        #[doc = "Output CMOS"]
9271        pub const _0: Self = Self::new(0);
9272
9273        #[doc = "Output NMOS open-drain"]
9274        pub const _1: Self = Self::new(1);
9275    }
9276}
9277#[doc(hidden)]
9278#[derive(Copy, Clone, Eq, PartialEq)]
9279pub struct P914Pfs_SPEC;
9280impl crate::sealed::RegSpec for P914Pfs_SPEC {
9281    type DataType = u32;
9282}
9283
9284#[doc = "Port 914 Pin Function Select Register"]
9285pub type P914Pfs = crate::RegValueT<P914Pfs_SPEC>;
9286
9287impl P914Pfs {
9288    #[doc = "Port Output Data"]
9289    #[inline(always)]
9290    pub fn podr(
9291        self,
9292    ) -> crate::common::RegisterField<
9293        0,
9294        0x1,
9295        1,
9296        0,
9297        p914pfs::Podr,
9298        p914pfs::Podr,
9299        P914Pfs_SPEC,
9300        crate::common::RW,
9301    > {
9302        crate::common::RegisterField::<
9303            0,
9304            0x1,
9305            1,
9306            0,
9307            p914pfs::Podr,
9308            p914pfs::Podr,
9309            P914Pfs_SPEC,
9310            crate::common::RW,
9311        >::from_register(self, 0)
9312    }
9313
9314    #[doc = "Port State"]
9315    #[inline(always)]
9316    pub fn pidr(
9317        self,
9318    ) -> crate::common::RegisterField<
9319        1,
9320        0x1,
9321        1,
9322        0,
9323        p914pfs::Pidr,
9324        p914pfs::Pidr,
9325        P914Pfs_SPEC,
9326        crate::common::R,
9327    > {
9328        crate::common::RegisterField::<
9329            1,
9330            0x1,
9331            1,
9332            0,
9333            p914pfs::Pidr,
9334            p914pfs::Pidr,
9335            P914Pfs_SPEC,
9336            crate::common::R,
9337        >::from_register(self, 0)
9338    }
9339
9340    #[doc = "Port Direction"]
9341    #[inline(always)]
9342    pub fn pdr(
9343        self,
9344    ) -> crate::common::RegisterField<
9345        2,
9346        0x1,
9347        1,
9348        0,
9349        p914pfs::Pdr,
9350        p914pfs::Pdr,
9351        P914Pfs_SPEC,
9352        crate::common::RW,
9353    > {
9354        crate::common::RegisterField::<
9355            2,
9356            0x1,
9357            1,
9358            0,
9359            p914pfs::Pdr,
9360            p914pfs::Pdr,
9361            P914Pfs_SPEC,
9362            crate::common::RW,
9363        >::from_register(self, 0)
9364    }
9365
9366    #[doc = "Pull-up Control"]
9367    #[inline(always)]
9368    pub fn pcr(
9369        self,
9370    ) -> crate::common::RegisterField<
9371        4,
9372        0x1,
9373        1,
9374        0,
9375        p914pfs::Pcr,
9376        p914pfs::Pcr,
9377        P914Pfs_SPEC,
9378        crate::common::RW,
9379    > {
9380        crate::common::RegisterField::<
9381            4,
9382            0x1,
9383            1,
9384            0,
9385            p914pfs::Pcr,
9386            p914pfs::Pcr,
9387            P914Pfs_SPEC,
9388            crate::common::RW,
9389        >::from_register(self, 0)
9390    }
9391
9392    #[doc = "N-Channel Open-Drain Control"]
9393    #[inline(always)]
9394    pub fn ncodr(
9395        self,
9396    ) -> crate::common::RegisterField<
9397        6,
9398        0x1,
9399        1,
9400        0,
9401        p914pfs::Ncodr,
9402        p914pfs::Ncodr,
9403        P914Pfs_SPEC,
9404        crate::common::RW,
9405    > {
9406        crate::common::RegisterField::<
9407            6,
9408            0x1,
9409            1,
9410            0,
9411            p914pfs::Ncodr,
9412            p914pfs::Ncodr,
9413            P914Pfs_SPEC,
9414            crate::common::RW,
9415        >::from_register(self, 0)
9416    }
9417
9418    #[doc = "IRQ Input Enable"]
9419    #[inline(always)]
9420    pub fn isel(
9421        self,
9422    ) -> crate::common::RegisterField<
9423        14,
9424        0x1,
9425        1,
9426        0,
9427        p914pfs::Isel,
9428        p914pfs::Isel,
9429        P914Pfs_SPEC,
9430        crate::common::RW,
9431    > {
9432        crate::common::RegisterField::<
9433            14,
9434            0x1,
9435            1,
9436            0,
9437            p914pfs::Isel,
9438            p914pfs::Isel,
9439            P914Pfs_SPEC,
9440            crate::common::RW,
9441        >::from_register(self, 0)
9442    }
9443
9444    #[doc = "Analog Input Enable"]
9445    #[inline(always)]
9446    pub fn asel(
9447        self,
9448    ) -> crate::common::RegisterField<
9449        15,
9450        0x1,
9451        1,
9452        0,
9453        p914pfs::Asel,
9454        p914pfs::Asel,
9455        P914Pfs_SPEC,
9456        crate::common::RW,
9457    > {
9458        crate::common::RegisterField::<
9459            15,
9460            0x1,
9461            1,
9462            0,
9463            p914pfs::Asel,
9464            p914pfs::Asel,
9465            P914Pfs_SPEC,
9466            crate::common::RW,
9467        >::from_register(self, 0)
9468    }
9469
9470    #[doc = "Port Mode Control"]
9471    #[inline(always)]
9472    pub fn pmr(
9473        self,
9474    ) -> crate::common::RegisterField<
9475        16,
9476        0x1,
9477        1,
9478        0,
9479        p914pfs::Pmr,
9480        p914pfs::Pmr,
9481        P914Pfs_SPEC,
9482        crate::common::RW,
9483    > {
9484        crate::common::RegisterField::<
9485            16,
9486            0x1,
9487            1,
9488            0,
9489            p914pfs::Pmr,
9490            p914pfs::Pmr,
9491            P914Pfs_SPEC,
9492            crate::common::RW,
9493        >::from_register(self, 0)
9494    }
9495
9496    #[doc = "Peripheral Select"]
9497    #[inline(always)]
9498    pub fn psel(
9499        self,
9500    ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, P914Pfs_SPEC, crate::common::RW> {
9501        crate::common::RegisterField::<24,0x1f,1,0,u8,u8,P914Pfs_SPEC,crate::common::RW>::from_register(self,0)
9502    }
9503}
9504impl ::core::default::Default for P914Pfs {
9505    #[inline(always)]
9506    fn default() -> P914Pfs {
9507        <crate::RegValueT<P914Pfs_SPEC> as RegisterValue<_>>::new(0)
9508    }
9509}
9510pub mod p914pfs {
9511
9512    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9513    pub struct Podr_SPEC;
9514    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
9515    impl Podr {
9516        #[doc = "Output low"]
9517        pub const _0: Self = Self::new(0);
9518
9519        #[doc = "Output high"]
9520        pub const _1: Self = Self::new(1);
9521    }
9522    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9523    pub struct Pidr_SPEC;
9524    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
9525    impl Pidr {
9526        #[doc = "Low level"]
9527        pub const _0: Self = Self::new(0);
9528
9529        #[doc = "High level"]
9530        pub const _1: Self = Self::new(1);
9531    }
9532    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9533    pub struct Pdr_SPEC;
9534    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
9535    impl Pdr {
9536        #[doc = "Input (functions as an input pin)"]
9537        pub const _0: Self = Self::new(0);
9538
9539        #[doc = "Output (functions as an output pin)"]
9540        pub const _1: Self = Self::new(1);
9541    }
9542    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9543    pub struct Pcr_SPEC;
9544    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
9545    impl Pcr {
9546        #[doc = "Disable input pull-up"]
9547        pub const _0: Self = Self::new(0);
9548
9549        #[doc = "Enable input pull-up"]
9550        pub const _1: Self = Self::new(1);
9551    }
9552    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9553    pub struct Ncodr_SPEC;
9554    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
9555    impl Ncodr {
9556        #[doc = "Output CMOS"]
9557        pub const _0: Self = Self::new(0);
9558
9559        #[doc = "Output NMOS open-drain"]
9560        pub const _1: Self = Self::new(1);
9561    }
9562    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9563    pub struct Isel_SPEC;
9564    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
9565    impl Isel {
9566        #[doc = "Do not use as IRQn input pin"]
9567        pub const _0: Self = Self::new(0);
9568
9569        #[doc = "Use as IRQn input pin"]
9570        pub const _1: Self = Self::new(1);
9571    }
9572    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9573    pub struct Asel_SPEC;
9574    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
9575    impl Asel {
9576        #[doc = "Do not use as analog pin"]
9577        pub const _0: Self = Self::new(0);
9578
9579        #[doc = "Use as analog pin"]
9580        pub const _1: Self = Self::new(1);
9581    }
9582    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9583    pub struct Pmr_SPEC;
9584    pub type Pmr = crate::EnumBitfieldStruct<u8, Pmr_SPEC>;
9585    impl Pmr {
9586        #[doc = "Use as general I/O pin"]
9587        pub const _0: Self = Self::new(0);
9588
9589        #[doc = "Use as I/O port for peripheral functions"]
9590        pub const _1: Self = Self::new(1);
9591    }
9592}
9593#[doc(hidden)]
9594#[derive(Copy, Clone, Eq, PartialEq)]
9595pub struct P914PfsHa_SPEC;
9596impl crate::sealed::RegSpec for P914PfsHa_SPEC {
9597    type DataType = u16;
9598}
9599
9600#[doc = "Port 914 Pin Function Select Register"]
9601pub type P914PfsHa = crate::RegValueT<P914PfsHa_SPEC>;
9602
9603impl P914PfsHa {
9604    #[doc = "Port Output Data"]
9605    #[inline(always)]
9606    pub fn podr(
9607        self,
9608    ) -> crate::common::RegisterField<
9609        0,
9610        0x1,
9611        1,
9612        0,
9613        p914pfs_ha::Podr,
9614        p914pfs_ha::Podr,
9615        P914PfsHa_SPEC,
9616        crate::common::RW,
9617    > {
9618        crate::common::RegisterField::<
9619            0,
9620            0x1,
9621            1,
9622            0,
9623            p914pfs_ha::Podr,
9624            p914pfs_ha::Podr,
9625            P914PfsHa_SPEC,
9626            crate::common::RW,
9627        >::from_register(self, 0)
9628    }
9629
9630    #[doc = "Port State"]
9631    #[inline(always)]
9632    pub fn pidr(
9633        self,
9634    ) -> crate::common::RegisterField<
9635        1,
9636        0x1,
9637        1,
9638        0,
9639        p914pfs_ha::Pidr,
9640        p914pfs_ha::Pidr,
9641        P914PfsHa_SPEC,
9642        crate::common::R,
9643    > {
9644        crate::common::RegisterField::<
9645            1,
9646            0x1,
9647            1,
9648            0,
9649            p914pfs_ha::Pidr,
9650            p914pfs_ha::Pidr,
9651            P914PfsHa_SPEC,
9652            crate::common::R,
9653        >::from_register(self, 0)
9654    }
9655
9656    #[doc = "Port Direction"]
9657    #[inline(always)]
9658    pub fn pdr(
9659        self,
9660    ) -> crate::common::RegisterField<
9661        2,
9662        0x1,
9663        1,
9664        0,
9665        p914pfs_ha::Pdr,
9666        p914pfs_ha::Pdr,
9667        P914PfsHa_SPEC,
9668        crate::common::RW,
9669    > {
9670        crate::common::RegisterField::<
9671            2,
9672            0x1,
9673            1,
9674            0,
9675            p914pfs_ha::Pdr,
9676            p914pfs_ha::Pdr,
9677            P914PfsHa_SPEC,
9678            crate::common::RW,
9679        >::from_register(self, 0)
9680    }
9681
9682    #[doc = "Pull-up Control"]
9683    #[inline(always)]
9684    pub fn pcr(
9685        self,
9686    ) -> crate::common::RegisterField<
9687        4,
9688        0x1,
9689        1,
9690        0,
9691        p914pfs_ha::Pcr,
9692        p914pfs_ha::Pcr,
9693        P914PfsHa_SPEC,
9694        crate::common::RW,
9695    > {
9696        crate::common::RegisterField::<
9697            4,
9698            0x1,
9699            1,
9700            0,
9701            p914pfs_ha::Pcr,
9702            p914pfs_ha::Pcr,
9703            P914PfsHa_SPEC,
9704            crate::common::RW,
9705        >::from_register(self, 0)
9706    }
9707
9708    #[doc = "N-Channel Open-Drain Control"]
9709    #[inline(always)]
9710    pub fn ncodr(
9711        self,
9712    ) -> crate::common::RegisterField<
9713        6,
9714        0x1,
9715        1,
9716        0,
9717        p914pfs_ha::Ncodr,
9718        p914pfs_ha::Ncodr,
9719        P914PfsHa_SPEC,
9720        crate::common::RW,
9721    > {
9722        crate::common::RegisterField::<
9723            6,
9724            0x1,
9725            1,
9726            0,
9727            p914pfs_ha::Ncodr,
9728            p914pfs_ha::Ncodr,
9729            P914PfsHa_SPEC,
9730            crate::common::RW,
9731        >::from_register(self, 0)
9732    }
9733
9734    #[doc = "IRQ Input Enable"]
9735    #[inline(always)]
9736    pub fn isel(
9737        self,
9738    ) -> crate::common::RegisterField<
9739        14,
9740        0x1,
9741        1,
9742        0,
9743        p914pfs_ha::Isel,
9744        p914pfs_ha::Isel,
9745        P914PfsHa_SPEC,
9746        crate::common::RW,
9747    > {
9748        crate::common::RegisterField::<
9749            14,
9750            0x1,
9751            1,
9752            0,
9753            p914pfs_ha::Isel,
9754            p914pfs_ha::Isel,
9755            P914PfsHa_SPEC,
9756            crate::common::RW,
9757        >::from_register(self, 0)
9758    }
9759
9760    #[doc = "Analog Input Enable"]
9761    #[inline(always)]
9762    pub fn asel(
9763        self,
9764    ) -> crate::common::RegisterField<
9765        15,
9766        0x1,
9767        1,
9768        0,
9769        p914pfs_ha::Asel,
9770        p914pfs_ha::Asel,
9771        P914PfsHa_SPEC,
9772        crate::common::RW,
9773    > {
9774        crate::common::RegisterField::<
9775            15,
9776            0x1,
9777            1,
9778            0,
9779            p914pfs_ha::Asel,
9780            p914pfs_ha::Asel,
9781            P914PfsHa_SPEC,
9782            crate::common::RW,
9783        >::from_register(self, 0)
9784    }
9785}
9786impl ::core::default::Default for P914PfsHa {
9787    #[inline(always)]
9788    fn default() -> P914PfsHa {
9789        <crate::RegValueT<P914PfsHa_SPEC> as RegisterValue<_>>::new(0)
9790    }
9791}
9792pub mod p914pfs_ha {
9793
9794    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9795    pub struct Podr_SPEC;
9796    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
9797    impl Podr {
9798        #[doc = "Output low"]
9799        pub const _0: Self = Self::new(0);
9800
9801        #[doc = "Output high"]
9802        pub const _1: Self = Self::new(1);
9803    }
9804    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9805    pub struct Pidr_SPEC;
9806    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
9807    impl Pidr {
9808        #[doc = "Low level"]
9809        pub const _0: Self = Self::new(0);
9810
9811        #[doc = "High level"]
9812        pub const _1: Self = Self::new(1);
9813    }
9814    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9815    pub struct Pdr_SPEC;
9816    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
9817    impl Pdr {
9818        #[doc = "Input (functions as an input pin)"]
9819        pub const _0: Self = Self::new(0);
9820
9821        #[doc = "Output (functions as an output pin)"]
9822        pub const _1: Self = Self::new(1);
9823    }
9824    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9825    pub struct Pcr_SPEC;
9826    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
9827    impl Pcr {
9828        #[doc = "Disable input pull-up"]
9829        pub const _0: Self = Self::new(0);
9830
9831        #[doc = "Enable input pull-up"]
9832        pub const _1: Self = Self::new(1);
9833    }
9834    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9835    pub struct Ncodr_SPEC;
9836    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
9837    impl Ncodr {
9838        #[doc = "Output CMOS"]
9839        pub const _0: Self = Self::new(0);
9840
9841        #[doc = "Output NMOS open-drain"]
9842        pub const _1: Self = Self::new(1);
9843    }
9844    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9845    pub struct Isel_SPEC;
9846    pub type Isel = crate::EnumBitfieldStruct<u8, Isel_SPEC>;
9847    impl Isel {
9848        #[doc = "Do not use as IRQn input pin"]
9849        pub const _0: Self = Self::new(0);
9850
9851        #[doc = "Use as IRQn input pin"]
9852        pub const _1: Self = Self::new(1);
9853    }
9854    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
9855    pub struct Asel_SPEC;
9856    pub type Asel = crate::EnumBitfieldStruct<u8, Asel_SPEC>;
9857    impl Asel {
9858        #[doc = "Do not use as analog pin"]
9859        pub const _0: Self = Self::new(0);
9860
9861        #[doc = "Use as analog pin"]
9862        pub const _1: Self = Self::new(1);
9863    }
9864}
9865#[doc(hidden)]
9866#[derive(Copy, Clone, Eq, PartialEq)]
9867pub struct P914PfsBy_SPEC;
9868impl crate::sealed::RegSpec for P914PfsBy_SPEC {
9869    type DataType = u8;
9870}
9871
9872#[doc = "Port 914 Pin Function Select Register"]
9873pub type P914PfsBy = crate::RegValueT<P914PfsBy_SPEC>;
9874
9875impl P914PfsBy {
9876    #[doc = "Port Output Data"]
9877    #[inline(always)]
9878    pub fn podr(
9879        self,
9880    ) -> crate::common::RegisterField<
9881        0,
9882        0x1,
9883        1,
9884        0,
9885        p914pfs_by::Podr,
9886        p914pfs_by::Podr,
9887        P914PfsBy_SPEC,
9888        crate::common::RW,
9889    > {
9890        crate::common::RegisterField::<
9891            0,
9892            0x1,
9893            1,
9894            0,
9895            p914pfs_by::Podr,
9896            p914pfs_by::Podr,
9897            P914PfsBy_SPEC,
9898            crate::common::RW,
9899        >::from_register(self, 0)
9900    }
9901
9902    #[doc = "Port State"]
9903    #[inline(always)]
9904    pub fn pidr(
9905        self,
9906    ) -> crate::common::RegisterField<
9907        1,
9908        0x1,
9909        1,
9910        0,
9911        p914pfs_by::Pidr,
9912        p914pfs_by::Pidr,
9913        P914PfsBy_SPEC,
9914        crate::common::R,
9915    > {
9916        crate::common::RegisterField::<
9917            1,
9918            0x1,
9919            1,
9920            0,
9921            p914pfs_by::Pidr,
9922            p914pfs_by::Pidr,
9923            P914PfsBy_SPEC,
9924            crate::common::R,
9925        >::from_register(self, 0)
9926    }
9927
9928    #[doc = "Port Direction"]
9929    #[inline(always)]
9930    pub fn pdr(
9931        self,
9932    ) -> crate::common::RegisterField<
9933        2,
9934        0x1,
9935        1,
9936        0,
9937        p914pfs_by::Pdr,
9938        p914pfs_by::Pdr,
9939        P914PfsBy_SPEC,
9940        crate::common::RW,
9941    > {
9942        crate::common::RegisterField::<
9943            2,
9944            0x1,
9945            1,
9946            0,
9947            p914pfs_by::Pdr,
9948            p914pfs_by::Pdr,
9949            P914PfsBy_SPEC,
9950            crate::common::RW,
9951        >::from_register(self, 0)
9952    }
9953
9954    #[doc = "Pull-up Control"]
9955    #[inline(always)]
9956    pub fn pcr(
9957        self,
9958    ) -> crate::common::RegisterField<
9959        4,
9960        0x1,
9961        1,
9962        0,
9963        p914pfs_by::Pcr,
9964        p914pfs_by::Pcr,
9965        P914PfsBy_SPEC,
9966        crate::common::RW,
9967    > {
9968        crate::common::RegisterField::<
9969            4,
9970            0x1,
9971            1,
9972            0,
9973            p914pfs_by::Pcr,
9974            p914pfs_by::Pcr,
9975            P914PfsBy_SPEC,
9976            crate::common::RW,
9977        >::from_register(self, 0)
9978    }
9979
9980    #[doc = "N-Channel Open-Drain Control"]
9981    #[inline(always)]
9982    pub fn ncodr(
9983        self,
9984    ) -> crate::common::RegisterField<
9985        6,
9986        0x1,
9987        1,
9988        0,
9989        p914pfs_by::Ncodr,
9990        p914pfs_by::Ncodr,
9991        P914PfsBy_SPEC,
9992        crate::common::RW,
9993    > {
9994        crate::common::RegisterField::<
9995            6,
9996            0x1,
9997            1,
9998            0,
9999            p914pfs_by::Ncodr,
10000            p914pfs_by::Ncodr,
10001            P914PfsBy_SPEC,
10002            crate::common::RW,
10003        >::from_register(self, 0)
10004    }
10005}
10006impl ::core::default::Default for P914PfsBy {
10007    #[inline(always)]
10008    fn default() -> P914PfsBy {
10009        <crate::RegValueT<P914PfsBy_SPEC> as RegisterValue<_>>::new(0)
10010    }
10011}
10012pub mod p914pfs_by {
10013
10014    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10015    pub struct Podr_SPEC;
10016    pub type Podr = crate::EnumBitfieldStruct<u8, Podr_SPEC>;
10017    impl Podr {
10018        #[doc = "Output low"]
10019        pub const _0: Self = Self::new(0);
10020
10021        #[doc = "Output high"]
10022        pub const _1: Self = Self::new(1);
10023    }
10024    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10025    pub struct Pidr_SPEC;
10026    pub type Pidr = crate::EnumBitfieldStruct<u8, Pidr_SPEC>;
10027    impl Pidr {
10028        #[doc = "Low level"]
10029        pub const _0: Self = Self::new(0);
10030
10031        #[doc = "High level"]
10032        pub const _1: Self = Self::new(1);
10033    }
10034    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10035    pub struct Pdr_SPEC;
10036    pub type Pdr = crate::EnumBitfieldStruct<u8, Pdr_SPEC>;
10037    impl Pdr {
10038        #[doc = "Input (functions as an input pin)"]
10039        pub const _0: Self = Self::new(0);
10040
10041        #[doc = "Output (functions as an output pin)"]
10042        pub const _1: Self = Self::new(1);
10043    }
10044    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10045    pub struct Pcr_SPEC;
10046    pub type Pcr = crate::EnumBitfieldStruct<u8, Pcr_SPEC>;
10047    impl Pcr {
10048        #[doc = "Disable input pull-up"]
10049        pub const _0: Self = Self::new(0);
10050
10051        #[doc = "Enable input pull-up"]
10052        pub const _1: Self = Self::new(1);
10053    }
10054    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10055    pub struct Ncodr_SPEC;
10056    pub type Ncodr = crate::EnumBitfieldStruct<u8, Ncodr_SPEC>;
10057    impl Ncodr {
10058        #[doc = "Output CMOS"]
10059        pub const _0: Self = Self::new(0);
10060
10061        #[doc = "Output NMOS open-drain"]
10062        pub const _1: Self = Self::new(1);
10063    }
10064}
10065#[doc(hidden)]
10066#[derive(Copy, Clone, Eq, PartialEq)]
10067pub struct Pwpr_SPEC;
10068impl crate::sealed::RegSpec for Pwpr_SPEC {
10069    type DataType = u8;
10070}
10071
10072#[doc = "Write-Protect Register"]
10073pub type Pwpr = crate::RegValueT<Pwpr_SPEC>;
10074
10075impl Pwpr {
10076    #[doc = "PmnPFS Register Write Enable"]
10077    #[inline(always)]
10078    pub fn pfswe(
10079        self,
10080    ) -> crate::common::RegisterField<
10081        6,
10082        0x1,
10083        1,
10084        0,
10085        pwpr::Pfswe,
10086        pwpr::Pfswe,
10087        Pwpr_SPEC,
10088        crate::common::RW,
10089    > {
10090        crate::common::RegisterField::<
10091            6,
10092            0x1,
10093            1,
10094            0,
10095            pwpr::Pfswe,
10096            pwpr::Pfswe,
10097            Pwpr_SPEC,
10098            crate::common::RW,
10099        >::from_register(self, 0)
10100    }
10101
10102    #[doc = "PFSWE Bit Write Disable"]
10103    #[inline(always)]
10104    pub fn b0wi(
10105        self,
10106    ) -> crate::common::RegisterField<
10107        7,
10108        0x1,
10109        1,
10110        0,
10111        pwpr::B0Wi,
10112        pwpr::B0Wi,
10113        Pwpr_SPEC,
10114        crate::common::RW,
10115    > {
10116        crate::common::RegisterField::<
10117            7,
10118            0x1,
10119            1,
10120            0,
10121            pwpr::B0Wi,
10122            pwpr::B0Wi,
10123            Pwpr_SPEC,
10124            crate::common::RW,
10125        >::from_register(self, 0)
10126    }
10127}
10128impl ::core::default::Default for Pwpr {
10129    #[inline(always)]
10130    fn default() -> Pwpr {
10131        <crate::RegValueT<Pwpr_SPEC> as RegisterValue<_>>::new(128)
10132    }
10133}
10134pub mod pwpr {
10135
10136    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10137    pub struct Pfswe_SPEC;
10138    pub type Pfswe = crate::EnumBitfieldStruct<u8, Pfswe_SPEC>;
10139    impl Pfswe {
10140        #[doc = "Writing to the PmnPFS register is disabled"]
10141        pub const _0: Self = Self::new(0);
10142
10143        #[doc = "Writing to the PmnPFS register is enabled"]
10144        pub const _1: Self = Self::new(1);
10145    }
10146    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10147    pub struct B0Wi_SPEC;
10148    pub type B0Wi = crate::EnumBitfieldStruct<u8, B0Wi_SPEC>;
10149    impl B0Wi {
10150        #[doc = "Writing to the PFSWE bit is enabled"]
10151        pub const _0: Self = Self::new(0);
10152
10153        #[doc = "Writing to the PFSWE bit is disabled"]
10154        pub const _1: Self = Self::new(1);
10155    }
10156}
10157#[doc(hidden)]
10158#[derive(Copy, Clone, Eq, PartialEq)]
10159pub struct Prwcntr_SPEC;
10160impl crate::sealed::RegSpec for Prwcntr_SPEC {
10161    type DataType = u8;
10162}
10163
10164#[doc = "Port Read Wait Control Register"]
10165pub type Prwcntr = crate::RegValueT<Prwcntr_SPEC>;
10166
10167impl Prwcntr {
10168    #[doc = "Wait Cycle Control"]
10169    #[inline(always)]
10170    pub fn wait(
10171        self,
10172    ) -> crate::common::RegisterField<
10173        0,
10174        0x3,
10175        1,
10176        0,
10177        prwcntr::Wait,
10178        prwcntr::Wait,
10179        Prwcntr_SPEC,
10180        crate::common::RW,
10181    > {
10182        crate::common::RegisterField::<
10183            0,
10184            0x3,
10185            1,
10186            0,
10187            prwcntr::Wait,
10188            prwcntr::Wait,
10189            Prwcntr_SPEC,
10190            crate::common::RW,
10191        >::from_register(self, 0)
10192    }
10193}
10194impl ::core::default::Default for Prwcntr {
10195    #[inline(always)]
10196    fn default() -> Prwcntr {
10197        <crate::RegValueT<Prwcntr_SPEC> as RegisterValue<_>>::new(1)
10198    }
10199}
10200pub mod prwcntr {
10201
10202    #[derive(Clone, Copy, Eq, PartialEq, Ord, PartialOrd)]
10203    pub struct Wait_SPEC;
10204    pub type Wait = crate::EnumBitfieldStruct<u8, Wait_SPEC>;
10205    impl Wait {
10206        #[doc = "Setting prohibited"]
10207        pub const _00: Self = Self::new(0);
10208
10209        #[doc = "Insert a 1-cycle wait"]
10210        pub const _01: Self = Self::new(1);
10211
10212        #[doc = "Insert a 2-cycle wait"]
10213        pub const _10: Self = Self::new(2);
10214
10215        #[doc = "Insert a 3-cycle wait"]
10216        pub const _11: Self = Self::new(3);
10217    }
10218}