da14682_pac/
kbscan.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.2, with svd2pac 0.6.0 on Thu, 24 Jul 2025 04:45:10 +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"KBSCAN registers"]
28unsafe impl ::core::marker::Send for super::Kbscan {}
29unsafe impl ::core::marker::Sync for super::Kbscan {}
30impl super::Kbscan {
31    #[allow(unused)]
32    #[inline(always)]
33    pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
34        self.ptr
35    }
36
37    #[doc = "Keyboard scanner control 2 register"]
38    #[inline(always)]
39    pub const fn kbscn_ctrl2_reg(
40        &self,
41    ) -> &'static crate::common::Reg<self::KbscnCtrl2Reg_SPEC, crate::common::RW> {
42        unsafe {
43            crate::common::Reg::<self::KbscnCtrl2Reg_SPEC, crate::common::RW>::from_ptr(
44                self._svd2pac_as_ptr().add(2usize),
45            )
46        }
47    }
48
49    #[doc = "Keyboard scanner control register"]
50    #[inline(always)]
51    pub const fn kbscn_ctrl_reg(
52        &self,
53    ) -> &'static crate::common::Reg<self::KbscnCtrlReg_SPEC, crate::common::RW> {
54        unsafe {
55            crate::common::Reg::<self::KbscnCtrlReg_SPEC, crate::common::RW>::from_ptr(
56                self._svd2pac_as_ptr().add(0usize),
57            )
58        }
59    }
60
61    #[doc = "Defines the debounce time for key press and release"]
62    #[inline(always)]
63    pub const fn kbscn_debounce_reg(
64        &self,
65    ) -> &'static crate::common::Reg<self::KbscnDebounceReg_SPEC, crate::common::RW> {
66        unsafe {
67            crate::common::Reg::<self::KbscnDebounceReg_SPEC, crate::common::RW>::from_ptr(
68                self._svd2pac_as_ptr().add(6usize),
69            )
70        }
71    }
72
73    #[doc = "Defines the number of rows and columns of the matrix"]
74    #[inline(always)]
75    pub const fn kbscn_matrix_size_reg(
76        &self,
77    ) -> &'static crate::common::Reg<self::KbscnMatrixSizeReg_SPEC, crate::common::RW> {
78        unsafe {
79            crate::common::Reg::<self::KbscnMatrixSizeReg_SPEC, crate::common::RW>::from_ptr(
80                self._svd2pac_as_ptr().add(4usize),
81            )
82        }
83    }
84
85    #[doc = "Returns a key message from the message queue"]
86    #[inline(always)]
87    pub const fn kbscn_message_key_reg(
88        &self,
89    ) -> &'static crate::common::Reg<self::KbscnMessageKeyReg_SPEC, crate::common::RW> {
90        unsafe {
91            crate::common::Reg::<self::KbscnMessageKeyReg_SPEC, crate::common::RW>::from_ptr(
92                self._svd2pac_as_ptr().add(10usize),
93            )
94        }
95    }
96
97    #[doc = "Defines the keyboard mode for P00"]
98    #[inline(always)]
99    pub const fn kbscn_p00_mode_reg(
100        &self,
101    ) -> &'static crate::common::Reg<self::KbscnP00ModeReg_SPEC, crate::common::RW> {
102        unsafe {
103            crate::common::Reg::<self::KbscnP00ModeReg_SPEC, crate::common::RW>::from_ptr(
104                self._svd2pac_as_ptr().add(12usize),
105            )
106        }
107    }
108
109    #[doc = "Defines the keyboard mode for P01"]
110    #[inline(always)]
111    pub const fn kbscn_p01_mode_reg(
112        &self,
113    ) -> &'static crate::common::Reg<self::KbscnP01ModeReg_SPEC, crate::common::RW> {
114        unsafe {
115            crate::common::Reg::<self::KbscnP01ModeReg_SPEC, crate::common::RW>::from_ptr(
116                self._svd2pac_as_ptr().add(14usize),
117            )
118        }
119    }
120
121    #[doc = "Defines the keyboard mode for P02"]
122    #[inline(always)]
123    pub const fn kbscn_p02_mode_reg(
124        &self,
125    ) -> &'static crate::common::Reg<self::KbscnP02ModeReg_SPEC, crate::common::RW> {
126        unsafe {
127            crate::common::Reg::<self::KbscnP02ModeReg_SPEC, crate::common::RW>::from_ptr(
128                self._svd2pac_as_ptr().add(16usize),
129            )
130        }
131    }
132
133    #[doc = "Defines the keyboard mode for P03"]
134    #[inline(always)]
135    pub const fn kbscn_p03_mode_reg(
136        &self,
137    ) -> &'static crate::common::Reg<self::KbscnP03ModeReg_SPEC, crate::common::RW> {
138        unsafe {
139            crate::common::Reg::<self::KbscnP03ModeReg_SPEC, crate::common::RW>::from_ptr(
140                self._svd2pac_as_ptr().add(18usize),
141            )
142        }
143    }
144
145    #[doc = "Defines the keyboard mode for P04"]
146    #[inline(always)]
147    pub const fn kbscn_p04_mode_reg(
148        &self,
149    ) -> &'static crate::common::Reg<self::KbscnP04ModeReg_SPEC, crate::common::RW> {
150        unsafe {
151            crate::common::Reg::<self::KbscnP04ModeReg_SPEC, crate::common::RW>::from_ptr(
152                self._svd2pac_as_ptr().add(20usize),
153            )
154        }
155    }
156
157    #[doc = "Defines the keyboard mode for P05"]
158    #[inline(always)]
159    pub const fn kbscn_p05_mode_reg(
160        &self,
161    ) -> &'static crate::common::Reg<self::KbscnP05ModeReg_SPEC, crate::common::RW> {
162        unsafe {
163            crate::common::Reg::<self::KbscnP05ModeReg_SPEC, crate::common::RW>::from_ptr(
164                self._svd2pac_as_ptr().add(22usize),
165            )
166        }
167    }
168
169    #[doc = "Defines the keyboard mode for P06"]
170    #[inline(always)]
171    pub const fn kbscn_p06_mode_reg(
172        &self,
173    ) -> &'static crate::common::Reg<self::KbscnP06ModeReg_SPEC, crate::common::RW> {
174        unsafe {
175            crate::common::Reg::<self::KbscnP06ModeReg_SPEC, crate::common::RW>::from_ptr(
176                self._svd2pac_as_ptr().add(24usize),
177            )
178        }
179    }
180
181    #[doc = "Defines the keyboard mode for P07"]
182    #[inline(always)]
183    pub const fn kbscn_p07_mode_reg(
184        &self,
185    ) -> &'static crate::common::Reg<self::KbscnP07ModeReg_SPEC, crate::common::RW> {
186        unsafe {
187            crate::common::Reg::<self::KbscnP07ModeReg_SPEC, crate::common::RW>::from_ptr(
188                self._svd2pac_as_ptr().add(26usize),
189            )
190        }
191    }
192
193    #[doc = "Defines the keyboard mode for P10"]
194    #[inline(always)]
195    pub const fn kbscn_p10_mode_reg(
196        &self,
197    ) -> &'static crate::common::Reg<self::KbscnP10ModeReg_SPEC, crate::common::RW> {
198        unsafe {
199            crate::common::Reg::<self::KbscnP10ModeReg_SPEC, crate::common::RW>::from_ptr(
200                self._svd2pac_as_ptr().add(28usize),
201            )
202        }
203    }
204
205    #[doc = "Defines the keyboard mode for P11"]
206    #[inline(always)]
207    pub const fn kbscn_p11_mode_reg(
208        &self,
209    ) -> &'static crate::common::Reg<self::KbscnP11ModeReg_SPEC, crate::common::RW> {
210        unsafe {
211            crate::common::Reg::<self::KbscnP11ModeReg_SPEC, crate::common::RW>::from_ptr(
212                self._svd2pac_as_ptr().add(30usize),
213            )
214        }
215    }
216
217    #[doc = "Defines the keyboard mode for P12"]
218    #[inline(always)]
219    pub const fn kbscn_p12_mode_reg(
220        &self,
221    ) -> &'static crate::common::Reg<self::KbscnP12ModeReg_SPEC, crate::common::RW> {
222        unsafe {
223            crate::common::Reg::<self::KbscnP12ModeReg_SPEC, crate::common::RW>::from_ptr(
224                self._svd2pac_as_ptr().add(32usize),
225            )
226        }
227    }
228
229    #[doc = "Defines the keyboard mode for P13"]
230    #[inline(always)]
231    pub const fn kbscn_p13_mode_reg(
232        &self,
233    ) -> &'static crate::common::Reg<self::KbscnP13ModeReg_SPEC, crate::common::RW> {
234        unsafe {
235            crate::common::Reg::<self::KbscnP13ModeReg_SPEC, crate::common::RW>::from_ptr(
236                self._svd2pac_as_ptr().add(34usize),
237            )
238        }
239    }
240
241    #[doc = "Defines the keyboard mode for P14"]
242    #[inline(always)]
243    pub const fn kbscn_p14_mode_reg(
244        &self,
245    ) -> &'static crate::common::Reg<self::KbscnP14ModeReg_SPEC, crate::common::RW> {
246        unsafe {
247            crate::common::Reg::<self::KbscnP14ModeReg_SPEC, crate::common::RW>::from_ptr(
248                self._svd2pac_as_ptr().add(36usize),
249            )
250        }
251    }
252
253    #[doc = "Defines the keyboard mode for P15"]
254    #[inline(always)]
255    pub const fn kbscn_p15_mode_reg(
256        &self,
257    ) -> &'static crate::common::Reg<self::KbscnP15ModeReg_SPEC, crate::common::RW> {
258        unsafe {
259            crate::common::Reg::<self::KbscnP15ModeReg_SPEC, crate::common::RW>::from_ptr(
260                self._svd2pac_as_ptr().add(38usize),
261            )
262        }
263    }
264
265    #[doc = "Defines the keyboard mode for P16"]
266    #[inline(always)]
267    pub const fn kbscn_p16_mode_reg(
268        &self,
269    ) -> &'static crate::common::Reg<self::KbscnP16ModeReg_SPEC, crate::common::RW> {
270        unsafe {
271            crate::common::Reg::<self::KbscnP16ModeReg_SPEC, crate::common::RW>::from_ptr(
272                self._svd2pac_as_ptr().add(40usize),
273            )
274        }
275    }
276
277    #[doc = "Defines the keyboard mode for P17"]
278    #[inline(always)]
279    pub const fn kbscn_p17_mode_reg(
280        &self,
281    ) -> &'static crate::common::Reg<self::KbscnP17ModeReg_SPEC, crate::common::RW> {
282        unsafe {
283            crate::common::Reg::<self::KbscnP17ModeReg_SPEC, crate::common::RW>::from_ptr(
284                self._svd2pac_as_ptr().add(42usize),
285            )
286        }
287    }
288
289    #[doc = "Defines the keyboard mode for P20"]
290    #[inline(always)]
291    pub const fn kbscn_p20_mode_reg(
292        &self,
293    ) -> &'static crate::common::Reg<self::KbscnP20ModeReg_SPEC, crate::common::RW> {
294        unsafe {
295            crate::common::Reg::<self::KbscnP20ModeReg_SPEC, crate::common::RW>::from_ptr(
296                self._svd2pac_as_ptr().add(44usize),
297            )
298        }
299    }
300
301    #[doc = "Defines the keyboard mode for P21"]
302    #[inline(always)]
303    pub const fn kbscn_p21_mode_reg(
304        &self,
305    ) -> &'static crate::common::Reg<self::KbscnP21ModeReg_SPEC, crate::common::RW> {
306        unsafe {
307            crate::common::Reg::<self::KbscnP21ModeReg_SPEC, crate::common::RW>::from_ptr(
308                self._svd2pac_as_ptr().add(46usize),
309            )
310        }
311    }
312
313    #[doc = "Defines the keyboard mode for P22"]
314    #[inline(always)]
315    pub const fn kbscn_p22_mode_reg(
316        &self,
317    ) -> &'static crate::common::Reg<self::KbscnP22ModeReg_SPEC, crate::common::RW> {
318        unsafe {
319            crate::common::Reg::<self::KbscnP22ModeReg_SPEC, crate::common::RW>::from_ptr(
320                self._svd2pac_as_ptr().add(48usize),
321            )
322        }
323    }
324
325    #[doc = "Defines the keyboard mode for P23"]
326    #[inline(always)]
327    pub const fn kbscn_p23_mode_reg(
328        &self,
329    ) -> &'static crate::common::Reg<self::KbscnP23ModeReg_SPEC, crate::common::RW> {
330        unsafe {
331            crate::common::Reg::<self::KbscnP23ModeReg_SPEC, crate::common::RW>::from_ptr(
332                self._svd2pac_as_ptr().add(50usize),
333            )
334        }
335    }
336
337    #[doc = "Defines the keyboard mode for P24"]
338    #[inline(always)]
339    pub const fn kbscn_p24_mode_reg(
340        &self,
341    ) -> &'static crate::common::Reg<self::KbscnP24ModeReg_SPEC, crate::common::RW> {
342        unsafe {
343            crate::common::Reg::<self::KbscnP24ModeReg_SPEC, crate::common::RW>::from_ptr(
344                self._svd2pac_as_ptr().add(52usize),
345            )
346        }
347    }
348
349    #[doc = "Defines the keyboard mode for P30"]
350    #[inline(always)]
351    pub const fn kbscn_p30_mode_reg(
352        &self,
353    ) -> &'static crate::common::Reg<self::KbscnP30ModeReg_SPEC, crate::common::RW> {
354        unsafe {
355            crate::common::Reg::<self::KbscnP30ModeReg_SPEC, crate::common::RW>::from_ptr(
356                self._svd2pac_as_ptr().add(60usize),
357            )
358        }
359    }
360
361    #[doc = "Defines the keyboard mode for P31"]
362    #[inline(always)]
363    pub const fn kbscn_p31_mode_reg(
364        &self,
365    ) -> &'static crate::common::Reg<self::KbscnP31ModeReg_SPEC, crate::common::RW> {
366        unsafe {
367            crate::common::Reg::<self::KbscnP31ModeReg_SPEC, crate::common::RW>::from_ptr(
368                self._svd2pac_as_ptr().add(62usize),
369            )
370        }
371    }
372
373    #[doc = "Defines the keyboard mode for P32"]
374    #[inline(always)]
375    pub const fn kbscn_p32_mode_reg(
376        &self,
377    ) -> &'static crate::common::Reg<self::KbscnP32ModeReg_SPEC, crate::common::RW> {
378        unsafe {
379            crate::common::Reg::<self::KbscnP32ModeReg_SPEC, crate::common::RW>::from_ptr(
380                self._svd2pac_as_ptr().add(64usize),
381            )
382        }
383    }
384
385    #[doc = "Defines the keyboard mode for P33"]
386    #[inline(always)]
387    pub const fn kbscn_p33_mode_reg(
388        &self,
389    ) -> &'static crate::common::Reg<self::KbscnP33ModeReg_SPEC, crate::common::RW> {
390        unsafe {
391            crate::common::Reg::<self::KbscnP33ModeReg_SPEC, crate::common::RW>::from_ptr(
392                self._svd2pac_as_ptr().add(66usize),
393            )
394        }
395    }
396
397    #[doc = "Defines the keyboard mode for P34"]
398    #[inline(always)]
399    pub const fn kbscn_p34_mode_reg(
400        &self,
401    ) -> &'static crate::common::Reg<self::KbscnP34ModeReg_SPEC, crate::common::RW> {
402        unsafe {
403            crate::common::Reg::<self::KbscnP34ModeReg_SPEC, crate::common::RW>::from_ptr(
404                self._svd2pac_as_ptr().add(68usize),
405            )
406        }
407    }
408
409    #[doc = "Defines the keyboard mode for P35"]
410    #[inline(always)]
411    pub const fn kbscn_p35_mode_reg(
412        &self,
413    ) -> &'static crate::common::Reg<self::KbscnP35ModeReg_SPEC, crate::common::RW> {
414        unsafe {
415            crate::common::Reg::<self::KbscnP35ModeReg_SPEC, crate::common::RW>::from_ptr(
416                self._svd2pac_as_ptr().add(70usize),
417            )
418        }
419    }
420
421    #[doc = "Defines the keyboard mode for P36"]
422    #[inline(always)]
423    pub const fn kbscn_p36_mode_reg(
424        &self,
425    ) -> &'static crate::common::Reg<self::KbscnP36ModeReg_SPEC, crate::common::RW> {
426        unsafe {
427            crate::common::Reg::<self::KbscnP36ModeReg_SPEC, crate::common::RW>::from_ptr(
428                self._svd2pac_as_ptr().add(72usize),
429            )
430        }
431    }
432
433    #[doc = "Defines the keyboard mode for P37"]
434    #[inline(always)]
435    pub const fn kbscn_p37_mode_reg(
436        &self,
437    ) -> &'static crate::common::Reg<self::KbscnP37ModeReg_SPEC, crate::common::RW> {
438        unsafe {
439            crate::common::Reg::<self::KbscnP37ModeReg_SPEC, crate::common::RW>::from_ptr(
440                self._svd2pac_as_ptr().add(74usize),
441            )
442        }
443    }
444
445    #[doc = "Defines the keyboard mode for P40"]
446    #[inline(always)]
447    pub const fn kbscn_p40_mode_reg(
448        &self,
449    ) -> &'static crate::common::Reg<self::KbscnP40ModeReg_SPEC, crate::common::RW> {
450        unsafe {
451            crate::common::Reg::<self::KbscnP40ModeReg_SPEC, crate::common::RW>::from_ptr(
452                self._svd2pac_as_ptr().add(76usize),
453            )
454        }
455    }
456
457    #[doc = "Defines the keyboard mode for P41"]
458    #[inline(always)]
459    pub const fn kbscn_p41_mode_reg(
460        &self,
461    ) -> &'static crate::common::Reg<self::KbscnP41ModeReg_SPEC, crate::common::RW> {
462        unsafe {
463            crate::common::Reg::<self::KbscnP41ModeReg_SPEC, crate::common::RW>::from_ptr(
464                self._svd2pac_as_ptr().add(78usize),
465            )
466        }
467    }
468
469    #[doc = "Defines the keyboard mode for P42"]
470    #[inline(always)]
471    pub const fn kbscn_p42_mode_reg(
472        &self,
473    ) -> &'static crate::common::Reg<self::KbscnP42ModeReg_SPEC, crate::common::RW> {
474        unsafe {
475            crate::common::Reg::<self::KbscnP42ModeReg_SPEC, crate::common::RW>::from_ptr(
476                self._svd2pac_as_ptr().add(80usize),
477            )
478        }
479    }
480
481    #[doc = "Defines the keyboard mode for P43"]
482    #[inline(always)]
483    pub const fn kbscn_p43_mode_reg(
484        &self,
485    ) -> &'static crate::common::Reg<self::KbscnP43ModeReg_SPEC, crate::common::RW> {
486        unsafe {
487            crate::common::Reg::<self::KbscnP43ModeReg_SPEC, crate::common::RW>::from_ptr(
488                self._svd2pac_as_ptr().add(82usize),
489            )
490        }
491    }
492
493    #[doc = "Defines the keyboard mode for P44"]
494    #[inline(always)]
495    pub const fn kbscn_p44_mode_reg(
496        &self,
497    ) -> &'static crate::common::Reg<self::KbscnP44ModeReg_SPEC, crate::common::RW> {
498        unsafe {
499            crate::common::Reg::<self::KbscnP44ModeReg_SPEC, crate::common::RW>::from_ptr(
500                self._svd2pac_as_ptr().add(84usize),
501            )
502        }
503    }
504
505    #[doc = "Defines the keyboard mode for P45"]
506    #[inline(always)]
507    pub const fn kbscn_p45_mode_reg(
508        &self,
509    ) -> &'static crate::common::Reg<self::KbscnP45ModeReg_SPEC, crate::common::RW> {
510        unsafe {
511            crate::common::Reg::<self::KbscnP45ModeReg_SPEC, crate::common::RW>::from_ptr(
512                self._svd2pac_as_ptr().add(86usize),
513            )
514        }
515    }
516
517    #[doc = "Defines the keyboard mode for P46"]
518    #[inline(always)]
519    pub const fn kbscn_p46_mode_reg(
520        &self,
521    ) -> &'static crate::common::Reg<self::KbscnP46ModeReg_SPEC, crate::common::RW> {
522        unsafe {
523            crate::common::Reg::<self::KbscnP46ModeReg_SPEC, crate::common::RW>::from_ptr(
524                self._svd2pac_as_ptr().add(88usize),
525            )
526        }
527    }
528
529    #[doc = "Defines the keyboard mode for P47"]
530    #[inline(always)]
531    pub const fn kbscn_p47_mode_reg(
532        &self,
533    ) -> &'static crate::common::Reg<self::KbscnP47ModeReg_SPEC, crate::common::RW> {
534        unsafe {
535            crate::common::Reg::<self::KbscnP47ModeReg_SPEC, crate::common::RW>::from_ptr(
536                self._svd2pac_as_ptr().add(90usize),
537            )
538        }
539    }
540
541    #[doc = "keyboard scanner Interrupt status register"]
542    #[inline(always)]
543    pub const fn kbscn_status_reg(
544        &self,
545    ) -> &'static crate::common::Reg<self::KbscnStatusReg_SPEC, crate::common::RW> {
546        unsafe {
547            crate::common::Reg::<self::KbscnStatusReg_SPEC, crate::common::RW>::from_ptr(
548                self._svd2pac_as_ptr().add(8usize),
549            )
550        }
551    }
552}
553#[doc(hidden)]
554#[derive(Copy, Clone, Eq, PartialEq)]
555pub struct KbscnCtrl2Reg_SPEC;
556impl crate::sealed::RegSpec for KbscnCtrl2Reg_SPEC {
557    type DataType = u16;
558}
559
560#[doc = "Keyboard scanner control 2 register"]
561pub type KbscnCtrl2Reg = crate::RegValueT<KbscnCtrl2Reg_SPEC>;
562
563impl KbscnCtrl2Reg {
564    #[doc = "Define the row active time in keyboard clock cycles"]
565    #[inline(always)]
566    pub fn kbscn_row_active_time(
567        self,
568    ) -> crate::common::RegisterField<
569        0,
570        0xffff,
571        1,
572        0,
573        u16,
574        u16,
575        KbscnCtrl2Reg_SPEC,
576        crate::common::RW,
577    > {
578        crate::common::RegisterField::<
579            0,
580            0xffff,
581            1,
582            0,
583            u16,
584            u16,
585            KbscnCtrl2Reg_SPEC,
586            crate::common::RW,
587        >::from_register(self, 0)
588    }
589}
590impl ::core::default::Default for KbscnCtrl2Reg {
591    #[inline(always)]
592    fn default() -> KbscnCtrl2Reg {
593        <crate::RegValueT<KbscnCtrl2Reg_SPEC> as RegisterValue<_>>::new(0)
594    }
595}
596
597#[doc(hidden)]
598#[derive(Copy, Clone, Eq, PartialEq)]
599pub struct KbscnCtrlReg_SPEC;
600impl crate::sealed::RegSpec for KbscnCtrlReg_SPEC {
601    type DataType = u16;
602}
603
604#[doc = "Keyboard scanner control register"]
605pub type KbscnCtrlReg = crate::RegValueT<KbscnCtrlReg_SPEC>;
606
607impl KbscnCtrlReg {
608    #[doc = "\'1\' reset fifo, read always \'0\'"]
609    #[inline(always)]
610    pub fn kbscn_reset_fifo(
611        self,
612    ) -> crate::common::RegisterFieldBool<14, 1, 0, KbscnCtrlReg_SPEC, crate::common::W> {
613        crate::common::RegisterFieldBool::<14,1,0,KbscnCtrlReg_SPEC,crate::common::W>::from_register(self,0)
614    }
615
616    #[doc = "Defines keyboard clk. \"00\" div/1, \"01\" div/4, \"10\" div/16, \"11\" div/64"]
617    #[inline(always)]
618    pub fn kbscn_clkdiv(
619        self,
620    ) -> crate::common::RegisterField<12, 0x3, 1, 0, u8, u8, KbscnCtrlReg_SPEC, crate::common::RW>
621    {
622        crate::common::RegisterField::<12,0x3,1,0,u8,u8,KbscnCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
623    }
624
625    #[doc = "\'1\' After inactive time the keyboard scanner stops the key maxtrix scan"]
626    #[inline(always)]
627    pub fn kbscn_inactive_en(
628        self,
629    ) -> crate::common::RegisterFieldBool<11, 1, 0, KbscnCtrlReg_SPEC, crate::common::RW> {
630        crate::common::RegisterFieldBool::<11,1,0,KbscnCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
631    }
632
633    #[doc = "Defines the inactive time in scan cycles. Value 0 is not allowed"]
634    #[inline(always)]
635    pub fn kbscn_inactive_time(
636        self,
637    ) -> crate::common::RegisterField<4, 0x7f, 1, 0, u8, u8, KbscnCtrlReg_SPEC, crate::common::RW>
638    {
639        crate::common::RegisterField::<4,0x7f,1,0,u8,u8,KbscnCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
640    }
641
642    #[doc = "\'1\' Enable IRQ for fifo over and under flow"]
643    #[inline(always)]
644    pub fn kbscn_irq_fifo_mask(
645        self,
646    ) -> crate::common::RegisterFieldBool<3, 1, 0, KbscnCtrlReg_SPEC, crate::common::RW> {
647        crate::common::RegisterFieldBool::<3,1,0,KbscnCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
648    }
649
650    #[doc = "\'1\' : Enable IRQ for inactive"]
651    #[inline(always)]
652    pub fn kbscn_irq_inactive_mask(
653        self,
654    ) -> crate::common::RegisterFieldBool<2, 1, 0, KbscnCtrlReg_SPEC, crate::common::RW> {
655        crate::common::RegisterFieldBool::<2,1,0,KbscnCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
656    }
657
658    #[doc = "\'1\' : Enable IRQ for message"]
659    #[inline(always)]
660    pub fn kbscn_irq_message_mask(
661        self,
662    ) -> crate::common::RegisterFieldBool<1, 1, 0, KbscnCtrlReg_SPEC, crate::common::RW> {
663        crate::common::RegisterFieldBool::<1,1,0,KbscnCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
664    }
665
666    #[doc = "\'1\' : Enable keyboard scanner, Auto clear when inactive enable and inactive case"]
667    #[inline(always)]
668    pub fn kbscn_en(
669        self,
670    ) -> crate::common::RegisterFieldBool<0, 1, 0, KbscnCtrlReg_SPEC, crate::common::RW> {
671        crate::common::RegisterFieldBool::<0,1,0,KbscnCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
672    }
673}
674impl ::core::default::Default for KbscnCtrlReg {
675    #[inline(always)]
676    fn default() -> KbscnCtrlReg {
677        <crate::RegValueT<KbscnCtrlReg_SPEC> as RegisterValue<_>>::new(0)
678    }
679}
680
681#[doc(hidden)]
682#[derive(Copy, Clone, Eq, PartialEq)]
683pub struct KbscnDebounceReg_SPEC;
684impl crate::sealed::RegSpec for KbscnDebounceReg_SPEC {
685    type DataType = u16;
686}
687
688#[doc = "Defines the debounce time for key press and release"]
689pub type KbscnDebounceReg = crate::RegValueT<KbscnDebounceReg_SPEC>;
690
691impl KbscnDebounceReg {
692    #[doc = "Defines the press debounce time in cycles of full matrix scan. One means no debounce, zero is reserved"]
693    #[inline(always)]
694    pub fn kbscn_debounce_press_time(
695        self,
696    ) -> crate::common::RegisterField<6, 0x3f, 1, 0, u8, u8, KbscnDebounceReg_SPEC, crate::common::RW>
697    {
698        crate::common::RegisterField::<
699            6,
700            0x3f,
701            1,
702            0,
703            u8,
704            u8,
705            KbscnDebounceReg_SPEC,
706            crate::common::RW,
707        >::from_register(self, 0)
708    }
709
710    #[doc = "Defines the press debounce time in cycles of full matrix scan. One means no debounce, zero is reserved"]
711    #[inline(always)]
712    pub fn kbscn_debounce_release_time(
713        self,
714    ) -> crate::common::RegisterField<0, 0x3f, 1, 0, u8, u8, KbscnDebounceReg_SPEC, crate::common::RW>
715    {
716        crate::common::RegisterField::<
717            0,
718            0x3f,
719            1,
720            0,
721            u8,
722            u8,
723            KbscnDebounceReg_SPEC,
724            crate::common::RW,
725        >::from_register(self, 0)
726    }
727}
728impl ::core::default::Default for KbscnDebounceReg {
729    #[inline(always)]
730    fn default() -> KbscnDebounceReg {
731        <crate::RegValueT<KbscnDebounceReg_SPEC> as RegisterValue<_>>::new(130)
732    }
733}
734
735#[doc(hidden)]
736#[derive(Copy, Clone, Eq, PartialEq)]
737pub struct KbscnMatrixSizeReg_SPEC;
738impl crate::sealed::RegSpec for KbscnMatrixSizeReg_SPEC {
739    type DataType = u16;
740}
741
742#[doc = "Defines the number of rows and columns of the matrix"]
743pub type KbscnMatrixSizeReg = crate::RegValueT<KbscnMatrixSizeReg_SPEC>;
744
745impl KbscnMatrixSizeReg {
746    #[doc = "Defines the number of the columns of the keyboard matrix minus 1. Zero means number of columns 1"]
747    #[inline(always)]
748    pub fn kbscn_matrix_column(
749        self,
750    ) -> crate::common::RegisterField<
751        4,
752        0x1f,
753        1,
754        0,
755        u8,
756        u8,
757        KbscnMatrixSizeReg_SPEC,
758        crate::common::RW,
759    > {
760        crate::common::RegisterField::<
761            4,
762            0x1f,
763            1,
764            0,
765            u8,
766            u8,
767            KbscnMatrixSizeReg_SPEC,
768            crate::common::RW,
769        >::from_register(self, 0)
770    }
771
772    #[doc = "Defines the number of the rows of the keyboard matrix minus 1. Zero means number of rows 1"]
773    #[inline(always)]
774    pub fn kbscn_matrix_row(
775        self,
776    ) -> crate::common::RegisterField<
777        0,
778        0xf,
779        1,
780        0,
781        u8,
782        u8,
783        KbscnMatrixSizeReg_SPEC,
784        crate::common::RW,
785    > {
786        crate::common::RegisterField::<
787            0,
788            0xf,
789            1,
790            0,
791            u8,
792            u8,
793            KbscnMatrixSizeReg_SPEC,
794            crate::common::RW,
795        >::from_register(self, 0)
796    }
797}
798impl ::core::default::Default for KbscnMatrixSizeReg {
799    #[inline(always)]
800    fn default() -> KbscnMatrixSizeReg {
801        <crate::RegValueT<KbscnMatrixSizeReg_SPEC> as RegisterValue<_>>::new(0)
802    }
803}
804
805#[doc(hidden)]
806#[derive(Copy, Clone, Eq, PartialEq)]
807pub struct KbscnMessageKeyReg_SPEC;
808impl crate::sealed::RegSpec for KbscnMessageKeyReg_SPEC {
809    type DataType = u16;
810}
811
812#[doc = "Returns a key message from the message queue"]
813pub type KbscnMessageKeyReg = crate::RegValueT<KbscnMessageKeyReg_SPEC>;
814
815impl KbscnMessageKeyReg {
816    #[doc = "\'1\' : this message is the last of the group message, else \'0\'. When \'1\' bits 9:0 are all \'1\'"]
817    #[inline(always)]
818    pub fn kbscn_last_entry(
819        self,
820    ) -> crate::common::RegisterFieldBool<10, 1, 0, KbscnMessageKeyReg_SPEC, crate::common::R> {
821        crate::common::RegisterFieldBool::<10,1,0,KbscnMessageKeyReg_SPEC,crate::common::R>::from_register(self,0)
822    }
823
824    #[doc = "\'0\' : New key state is release\n\'1\' : New key state is press"]
825    #[inline(always)]
826    pub fn kbscn_key_state(
827        self,
828    ) -> crate::common::RegisterFieldBool<9, 1, 0, KbscnMessageKeyReg_SPEC, crate::common::R> {
829        crate::common::RegisterFieldBool::<9,1,0,KbscnMessageKeyReg_SPEC,crate::common::R>::from_register(self,0)
830    }
831
832    #[doc = "Defines the column id of key"]
833    #[inline(always)]
834    pub fn kbscn_keyid_column(
835        self,
836    ) -> crate::common::RegisterField<
837        4,
838        0x1f,
839        1,
840        0,
841        u8,
842        u8,
843        KbscnMessageKeyReg_SPEC,
844        crate::common::R,
845    > {
846        crate::common::RegisterField::<
847            4,
848            0x1f,
849            1,
850            0,
851            u8,
852            u8,
853            KbscnMessageKeyReg_SPEC,
854            crate::common::R,
855        >::from_register(self, 0)
856    }
857
858    #[doc = "Defines the row id of key"]
859    #[inline(always)]
860    pub fn kbscn_keyid_row(
861        self,
862    ) -> crate::common::RegisterField<0, 0xf, 1, 0, u8, u8, KbscnMessageKeyReg_SPEC, crate::common::R>
863    {
864        crate::common::RegisterField::<
865            0,
866            0xf,
867            1,
868            0,
869            u8,
870            u8,
871            KbscnMessageKeyReg_SPEC,
872            crate::common::R,
873        >::from_register(self, 0)
874    }
875}
876impl ::core::default::Default for KbscnMessageKeyReg {
877    #[inline(always)]
878    fn default() -> KbscnMessageKeyReg {
879        <crate::RegValueT<KbscnMessageKeyReg_SPEC> as RegisterValue<_>>::new(0)
880    }
881}
882
883#[doc(hidden)]
884#[derive(Copy, Clone, Eq, PartialEq)]
885pub struct KbscnP00ModeReg_SPEC;
886impl crate::sealed::RegSpec for KbscnP00ModeReg_SPEC {
887    type DataType = u16;
888}
889
890#[doc = "Defines the keyboard mode for P00"]
891pub type KbscnP00ModeReg = crate::RegValueT<KbscnP00ModeReg_SPEC>;
892
893impl KbscnP00ModeReg {
894    #[doc = "\'1\' GPIO is enable for row or column"]
895    #[inline(always)]
896    pub fn kbscn_gpio_en(
897        self,
898    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP00ModeReg_SPEC, crate::common::RW> {
899        crate::common::RegisterFieldBool::<6,1,0,KbscnP00ModeReg_SPEC,crate::common::RW>::from_register(self,0)
900    }
901
902    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
903    #[inline(always)]
904    pub fn kbscn_row(
905        self,
906    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP00ModeReg_SPEC, crate::common::RW> {
907        crate::common::RegisterFieldBool::<5,1,0,KbscnP00ModeReg_SPEC,crate::common::RW>::from_register(self,0)
908    }
909
910    #[doc = "Defines the row/column index that has to be connected"]
911    #[inline(always)]
912    pub fn kbscn_mode(
913        self,
914    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP00ModeReg_SPEC, crate::common::RW>
915    {
916        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP00ModeReg_SPEC,crate::common::RW>::from_register(self,0)
917    }
918}
919impl ::core::default::Default for KbscnP00ModeReg {
920    #[inline(always)]
921    fn default() -> KbscnP00ModeReg {
922        <crate::RegValueT<KbscnP00ModeReg_SPEC> as RegisterValue<_>>::new(0)
923    }
924}
925
926#[doc(hidden)]
927#[derive(Copy, Clone, Eq, PartialEq)]
928pub struct KbscnP01ModeReg_SPEC;
929impl crate::sealed::RegSpec for KbscnP01ModeReg_SPEC {
930    type DataType = u16;
931}
932
933#[doc = "Defines the keyboard mode for P01"]
934pub type KbscnP01ModeReg = crate::RegValueT<KbscnP01ModeReg_SPEC>;
935
936impl KbscnP01ModeReg {
937    #[doc = "\'1\' GPIO is enable for row or column"]
938    #[inline(always)]
939    pub fn kbscn_gpio_en(
940        self,
941    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP01ModeReg_SPEC, crate::common::RW> {
942        crate::common::RegisterFieldBool::<6,1,0,KbscnP01ModeReg_SPEC,crate::common::RW>::from_register(self,0)
943    }
944
945    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
946    #[inline(always)]
947    pub fn kbscn_row(
948        self,
949    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP01ModeReg_SPEC, crate::common::RW> {
950        crate::common::RegisterFieldBool::<5,1,0,KbscnP01ModeReg_SPEC,crate::common::RW>::from_register(self,0)
951    }
952
953    #[doc = "Defines the row/column index that has to be connected"]
954    #[inline(always)]
955    pub fn kbscn_mode(
956        self,
957    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP01ModeReg_SPEC, crate::common::RW>
958    {
959        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP01ModeReg_SPEC,crate::common::RW>::from_register(self,0)
960    }
961}
962impl ::core::default::Default for KbscnP01ModeReg {
963    #[inline(always)]
964    fn default() -> KbscnP01ModeReg {
965        <crate::RegValueT<KbscnP01ModeReg_SPEC> as RegisterValue<_>>::new(0)
966    }
967}
968
969#[doc(hidden)]
970#[derive(Copy, Clone, Eq, PartialEq)]
971pub struct KbscnP02ModeReg_SPEC;
972impl crate::sealed::RegSpec for KbscnP02ModeReg_SPEC {
973    type DataType = u16;
974}
975
976#[doc = "Defines the keyboard mode for P02"]
977pub type KbscnP02ModeReg = crate::RegValueT<KbscnP02ModeReg_SPEC>;
978
979impl KbscnP02ModeReg {
980    #[doc = "\'1\' GPIO is enable for row or column"]
981    #[inline(always)]
982    pub fn kbscn_gpio_en(
983        self,
984    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP02ModeReg_SPEC, crate::common::RW> {
985        crate::common::RegisterFieldBool::<6,1,0,KbscnP02ModeReg_SPEC,crate::common::RW>::from_register(self,0)
986    }
987
988    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
989    #[inline(always)]
990    pub fn kbscn_row(
991        self,
992    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP02ModeReg_SPEC, crate::common::RW> {
993        crate::common::RegisterFieldBool::<5,1,0,KbscnP02ModeReg_SPEC,crate::common::RW>::from_register(self,0)
994    }
995
996    #[doc = "Defines the row/column index that has to be connected"]
997    #[inline(always)]
998    pub fn kbscn_mode(
999        self,
1000    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP02ModeReg_SPEC, crate::common::RW>
1001    {
1002        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP02ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1003    }
1004}
1005impl ::core::default::Default for KbscnP02ModeReg {
1006    #[inline(always)]
1007    fn default() -> KbscnP02ModeReg {
1008        <crate::RegValueT<KbscnP02ModeReg_SPEC> as RegisterValue<_>>::new(0)
1009    }
1010}
1011
1012#[doc(hidden)]
1013#[derive(Copy, Clone, Eq, PartialEq)]
1014pub struct KbscnP03ModeReg_SPEC;
1015impl crate::sealed::RegSpec for KbscnP03ModeReg_SPEC {
1016    type DataType = u16;
1017}
1018
1019#[doc = "Defines the keyboard mode for P03"]
1020pub type KbscnP03ModeReg = crate::RegValueT<KbscnP03ModeReg_SPEC>;
1021
1022impl KbscnP03ModeReg {
1023    #[doc = "\'1\' GPIO is enable for row or column"]
1024    #[inline(always)]
1025    pub fn kbscn_gpio_en(
1026        self,
1027    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP03ModeReg_SPEC, crate::common::RW> {
1028        crate::common::RegisterFieldBool::<6,1,0,KbscnP03ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1029    }
1030
1031    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
1032    #[inline(always)]
1033    pub fn kbscn_row(
1034        self,
1035    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP03ModeReg_SPEC, crate::common::RW> {
1036        crate::common::RegisterFieldBool::<5,1,0,KbscnP03ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1037    }
1038
1039    #[doc = "Defines the row/column index that has to be connected"]
1040    #[inline(always)]
1041    pub fn kbscn_mode(
1042        self,
1043    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP03ModeReg_SPEC, crate::common::RW>
1044    {
1045        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP03ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1046    }
1047}
1048impl ::core::default::Default for KbscnP03ModeReg {
1049    #[inline(always)]
1050    fn default() -> KbscnP03ModeReg {
1051        <crate::RegValueT<KbscnP03ModeReg_SPEC> as RegisterValue<_>>::new(0)
1052    }
1053}
1054
1055#[doc(hidden)]
1056#[derive(Copy, Clone, Eq, PartialEq)]
1057pub struct KbscnP04ModeReg_SPEC;
1058impl crate::sealed::RegSpec for KbscnP04ModeReg_SPEC {
1059    type DataType = u16;
1060}
1061
1062#[doc = "Defines the keyboard mode for P04"]
1063pub type KbscnP04ModeReg = crate::RegValueT<KbscnP04ModeReg_SPEC>;
1064
1065impl KbscnP04ModeReg {
1066    #[doc = "\'1\' GPIO is enable for row or column"]
1067    #[inline(always)]
1068    pub fn kbscn_gpio_en(
1069        self,
1070    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP04ModeReg_SPEC, crate::common::RW> {
1071        crate::common::RegisterFieldBool::<6,1,0,KbscnP04ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1072    }
1073
1074    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
1075    #[inline(always)]
1076    pub fn kbscn_row(
1077        self,
1078    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP04ModeReg_SPEC, crate::common::RW> {
1079        crate::common::RegisterFieldBool::<5,1,0,KbscnP04ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1080    }
1081
1082    #[doc = "Defines the row/column index that has to be connected"]
1083    #[inline(always)]
1084    pub fn kbscn_mode(
1085        self,
1086    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP04ModeReg_SPEC, crate::common::RW>
1087    {
1088        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP04ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1089    }
1090}
1091impl ::core::default::Default for KbscnP04ModeReg {
1092    #[inline(always)]
1093    fn default() -> KbscnP04ModeReg {
1094        <crate::RegValueT<KbscnP04ModeReg_SPEC> as RegisterValue<_>>::new(0)
1095    }
1096}
1097
1098#[doc(hidden)]
1099#[derive(Copy, Clone, Eq, PartialEq)]
1100pub struct KbscnP05ModeReg_SPEC;
1101impl crate::sealed::RegSpec for KbscnP05ModeReg_SPEC {
1102    type DataType = u16;
1103}
1104
1105#[doc = "Defines the keyboard mode for P05"]
1106pub type KbscnP05ModeReg = crate::RegValueT<KbscnP05ModeReg_SPEC>;
1107
1108impl KbscnP05ModeReg {
1109    #[doc = "\'1\' GPIO is enable for row or column"]
1110    #[inline(always)]
1111    pub fn kbscn_gpio_en(
1112        self,
1113    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP05ModeReg_SPEC, crate::common::RW> {
1114        crate::common::RegisterFieldBool::<6,1,0,KbscnP05ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1115    }
1116
1117    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
1118    #[inline(always)]
1119    pub fn kbscn_row(
1120        self,
1121    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP05ModeReg_SPEC, crate::common::RW> {
1122        crate::common::RegisterFieldBool::<5,1,0,KbscnP05ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1123    }
1124
1125    #[doc = "Defines the row/column index that has to be connected"]
1126    #[inline(always)]
1127    pub fn kbscn_mode(
1128        self,
1129    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP05ModeReg_SPEC, crate::common::RW>
1130    {
1131        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP05ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1132    }
1133}
1134impl ::core::default::Default for KbscnP05ModeReg {
1135    #[inline(always)]
1136    fn default() -> KbscnP05ModeReg {
1137        <crate::RegValueT<KbscnP05ModeReg_SPEC> as RegisterValue<_>>::new(0)
1138    }
1139}
1140
1141#[doc(hidden)]
1142#[derive(Copy, Clone, Eq, PartialEq)]
1143pub struct KbscnP06ModeReg_SPEC;
1144impl crate::sealed::RegSpec for KbscnP06ModeReg_SPEC {
1145    type DataType = u16;
1146}
1147
1148#[doc = "Defines the keyboard mode for P06"]
1149pub type KbscnP06ModeReg = crate::RegValueT<KbscnP06ModeReg_SPEC>;
1150
1151impl KbscnP06ModeReg {
1152    #[doc = "\'1\' GPIO is enable for row or column"]
1153    #[inline(always)]
1154    pub fn kbscn_gpio_en(
1155        self,
1156    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP06ModeReg_SPEC, crate::common::RW> {
1157        crate::common::RegisterFieldBool::<6,1,0,KbscnP06ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1158    }
1159
1160    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
1161    #[inline(always)]
1162    pub fn kbscn_row(
1163        self,
1164    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP06ModeReg_SPEC, crate::common::RW> {
1165        crate::common::RegisterFieldBool::<5,1,0,KbscnP06ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1166    }
1167
1168    #[doc = "Defines the row/column index that has to be connected"]
1169    #[inline(always)]
1170    pub fn kbscn_mode(
1171        self,
1172    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP06ModeReg_SPEC, crate::common::RW>
1173    {
1174        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP06ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1175    }
1176}
1177impl ::core::default::Default for KbscnP06ModeReg {
1178    #[inline(always)]
1179    fn default() -> KbscnP06ModeReg {
1180        <crate::RegValueT<KbscnP06ModeReg_SPEC> as RegisterValue<_>>::new(0)
1181    }
1182}
1183
1184#[doc(hidden)]
1185#[derive(Copy, Clone, Eq, PartialEq)]
1186pub struct KbscnP07ModeReg_SPEC;
1187impl crate::sealed::RegSpec for KbscnP07ModeReg_SPEC {
1188    type DataType = u16;
1189}
1190
1191#[doc = "Defines the keyboard mode for P07"]
1192pub type KbscnP07ModeReg = crate::RegValueT<KbscnP07ModeReg_SPEC>;
1193
1194impl KbscnP07ModeReg {
1195    #[doc = "\'1\' GPIO is enable for row or column"]
1196    #[inline(always)]
1197    pub fn kbscn_gpio_en(
1198        self,
1199    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP07ModeReg_SPEC, crate::common::RW> {
1200        crate::common::RegisterFieldBool::<6,1,0,KbscnP07ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1201    }
1202
1203    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
1204    #[inline(always)]
1205    pub fn kbscn_row(
1206        self,
1207    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP07ModeReg_SPEC, crate::common::RW> {
1208        crate::common::RegisterFieldBool::<5,1,0,KbscnP07ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1209    }
1210
1211    #[doc = "Defines the row/column index that has to be connected"]
1212    #[inline(always)]
1213    pub fn kbscn_mode(
1214        self,
1215    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP07ModeReg_SPEC, crate::common::RW>
1216    {
1217        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP07ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1218    }
1219}
1220impl ::core::default::Default for KbscnP07ModeReg {
1221    #[inline(always)]
1222    fn default() -> KbscnP07ModeReg {
1223        <crate::RegValueT<KbscnP07ModeReg_SPEC> as RegisterValue<_>>::new(0)
1224    }
1225}
1226
1227#[doc(hidden)]
1228#[derive(Copy, Clone, Eq, PartialEq)]
1229pub struct KbscnP10ModeReg_SPEC;
1230impl crate::sealed::RegSpec for KbscnP10ModeReg_SPEC {
1231    type DataType = u16;
1232}
1233
1234#[doc = "Defines the keyboard mode for P10"]
1235pub type KbscnP10ModeReg = crate::RegValueT<KbscnP10ModeReg_SPEC>;
1236
1237impl KbscnP10ModeReg {
1238    #[doc = "\'1\' GPIO is enable for row or column"]
1239    #[inline(always)]
1240    pub fn kbscn_gpio_en(
1241        self,
1242    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP10ModeReg_SPEC, crate::common::RW> {
1243        crate::common::RegisterFieldBool::<6,1,0,KbscnP10ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1244    }
1245
1246    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
1247    #[inline(always)]
1248    pub fn kbscn_row(
1249        self,
1250    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP10ModeReg_SPEC, crate::common::RW> {
1251        crate::common::RegisterFieldBool::<5,1,0,KbscnP10ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1252    }
1253
1254    #[doc = "Defines the row/column index that has to be connected"]
1255    #[inline(always)]
1256    pub fn kbscn_mode(
1257        self,
1258    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP10ModeReg_SPEC, crate::common::RW>
1259    {
1260        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP10ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1261    }
1262}
1263impl ::core::default::Default for KbscnP10ModeReg {
1264    #[inline(always)]
1265    fn default() -> KbscnP10ModeReg {
1266        <crate::RegValueT<KbscnP10ModeReg_SPEC> as RegisterValue<_>>::new(0)
1267    }
1268}
1269
1270#[doc(hidden)]
1271#[derive(Copy, Clone, Eq, PartialEq)]
1272pub struct KbscnP11ModeReg_SPEC;
1273impl crate::sealed::RegSpec for KbscnP11ModeReg_SPEC {
1274    type DataType = u16;
1275}
1276
1277#[doc = "Defines the keyboard mode for P11"]
1278pub type KbscnP11ModeReg = crate::RegValueT<KbscnP11ModeReg_SPEC>;
1279
1280impl KbscnP11ModeReg {
1281    #[doc = "\'1\' GPIO is enable for row or column"]
1282    #[inline(always)]
1283    pub fn kbscn_gpio_en(
1284        self,
1285    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP11ModeReg_SPEC, crate::common::RW> {
1286        crate::common::RegisterFieldBool::<6,1,0,KbscnP11ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1287    }
1288
1289    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
1290    #[inline(always)]
1291    pub fn kbscn_row(
1292        self,
1293    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP11ModeReg_SPEC, crate::common::RW> {
1294        crate::common::RegisterFieldBool::<5,1,0,KbscnP11ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1295    }
1296
1297    #[doc = "Defines the row/column index that has to be connected"]
1298    #[inline(always)]
1299    pub fn kbscn_mode(
1300        self,
1301    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP11ModeReg_SPEC, crate::common::RW>
1302    {
1303        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP11ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1304    }
1305}
1306impl ::core::default::Default for KbscnP11ModeReg {
1307    #[inline(always)]
1308    fn default() -> KbscnP11ModeReg {
1309        <crate::RegValueT<KbscnP11ModeReg_SPEC> as RegisterValue<_>>::new(0)
1310    }
1311}
1312
1313#[doc(hidden)]
1314#[derive(Copy, Clone, Eq, PartialEq)]
1315pub struct KbscnP12ModeReg_SPEC;
1316impl crate::sealed::RegSpec for KbscnP12ModeReg_SPEC {
1317    type DataType = u16;
1318}
1319
1320#[doc = "Defines the keyboard mode for P12"]
1321pub type KbscnP12ModeReg = crate::RegValueT<KbscnP12ModeReg_SPEC>;
1322
1323impl KbscnP12ModeReg {
1324    #[doc = "\'1\' GPIO is enable for row or column"]
1325    #[inline(always)]
1326    pub fn kbscn_gpio_en(
1327        self,
1328    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP12ModeReg_SPEC, crate::common::RW> {
1329        crate::common::RegisterFieldBool::<6,1,0,KbscnP12ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1330    }
1331
1332    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
1333    #[inline(always)]
1334    pub fn kbscn_row(
1335        self,
1336    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP12ModeReg_SPEC, crate::common::RW> {
1337        crate::common::RegisterFieldBool::<5,1,0,KbscnP12ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1338    }
1339
1340    #[doc = "Defines the row/column index that has to be connected"]
1341    #[inline(always)]
1342    pub fn kbscn_mode(
1343        self,
1344    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP12ModeReg_SPEC, crate::common::RW>
1345    {
1346        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP12ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1347    }
1348}
1349impl ::core::default::Default for KbscnP12ModeReg {
1350    #[inline(always)]
1351    fn default() -> KbscnP12ModeReg {
1352        <crate::RegValueT<KbscnP12ModeReg_SPEC> as RegisterValue<_>>::new(0)
1353    }
1354}
1355
1356#[doc(hidden)]
1357#[derive(Copy, Clone, Eq, PartialEq)]
1358pub struct KbscnP13ModeReg_SPEC;
1359impl crate::sealed::RegSpec for KbscnP13ModeReg_SPEC {
1360    type DataType = u16;
1361}
1362
1363#[doc = "Defines the keyboard mode for P13"]
1364pub type KbscnP13ModeReg = crate::RegValueT<KbscnP13ModeReg_SPEC>;
1365
1366impl KbscnP13ModeReg {
1367    #[doc = "\'1\' GPIO is enable for row or column"]
1368    #[inline(always)]
1369    pub fn kbscn_gpio_en(
1370        self,
1371    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP13ModeReg_SPEC, crate::common::RW> {
1372        crate::common::RegisterFieldBool::<6,1,0,KbscnP13ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1373    }
1374
1375    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
1376    #[inline(always)]
1377    pub fn kbscn_row(
1378        self,
1379    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP13ModeReg_SPEC, crate::common::RW> {
1380        crate::common::RegisterFieldBool::<5,1,0,KbscnP13ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1381    }
1382
1383    #[doc = "Defines the row/column index that has to be connected"]
1384    #[inline(always)]
1385    pub fn kbscn_mode(
1386        self,
1387    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP13ModeReg_SPEC, crate::common::RW>
1388    {
1389        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP13ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1390    }
1391}
1392impl ::core::default::Default for KbscnP13ModeReg {
1393    #[inline(always)]
1394    fn default() -> KbscnP13ModeReg {
1395        <crate::RegValueT<KbscnP13ModeReg_SPEC> as RegisterValue<_>>::new(0)
1396    }
1397}
1398
1399#[doc(hidden)]
1400#[derive(Copy, Clone, Eq, PartialEq)]
1401pub struct KbscnP14ModeReg_SPEC;
1402impl crate::sealed::RegSpec for KbscnP14ModeReg_SPEC {
1403    type DataType = u16;
1404}
1405
1406#[doc = "Defines the keyboard mode for P14"]
1407pub type KbscnP14ModeReg = crate::RegValueT<KbscnP14ModeReg_SPEC>;
1408
1409impl KbscnP14ModeReg {
1410    #[doc = "\'1\' GPIO is enable for row or column"]
1411    #[inline(always)]
1412    pub fn kbscn_gpio_en(
1413        self,
1414    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP14ModeReg_SPEC, crate::common::RW> {
1415        crate::common::RegisterFieldBool::<6,1,0,KbscnP14ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1416    }
1417
1418    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
1419    #[inline(always)]
1420    pub fn kbscn_row(
1421        self,
1422    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP14ModeReg_SPEC, crate::common::RW> {
1423        crate::common::RegisterFieldBool::<5,1,0,KbscnP14ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1424    }
1425
1426    #[doc = "Defines the row/column index that has to be connected"]
1427    #[inline(always)]
1428    pub fn kbscn_mode(
1429        self,
1430    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP14ModeReg_SPEC, crate::common::RW>
1431    {
1432        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP14ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1433    }
1434}
1435impl ::core::default::Default for KbscnP14ModeReg {
1436    #[inline(always)]
1437    fn default() -> KbscnP14ModeReg {
1438        <crate::RegValueT<KbscnP14ModeReg_SPEC> as RegisterValue<_>>::new(0)
1439    }
1440}
1441
1442#[doc(hidden)]
1443#[derive(Copy, Clone, Eq, PartialEq)]
1444pub struct KbscnP15ModeReg_SPEC;
1445impl crate::sealed::RegSpec for KbscnP15ModeReg_SPEC {
1446    type DataType = u16;
1447}
1448
1449#[doc = "Defines the keyboard mode for P15"]
1450pub type KbscnP15ModeReg = crate::RegValueT<KbscnP15ModeReg_SPEC>;
1451
1452impl KbscnP15ModeReg {
1453    #[doc = "\'1\' GPIO is enable for row or column"]
1454    #[inline(always)]
1455    pub fn kbscn_gpio_en(
1456        self,
1457    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP15ModeReg_SPEC, crate::common::RW> {
1458        crate::common::RegisterFieldBool::<6,1,0,KbscnP15ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1459    }
1460
1461    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
1462    #[inline(always)]
1463    pub fn kbscn_row(
1464        self,
1465    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP15ModeReg_SPEC, crate::common::RW> {
1466        crate::common::RegisterFieldBool::<5,1,0,KbscnP15ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1467    }
1468
1469    #[doc = "Defines the row/column index that has to be connected"]
1470    #[inline(always)]
1471    pub fn kbscn_mode(
1472        self,
1473    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP15ModeReg_SPEC, crate::common::RW>
1474    {
1475        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP15ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1476    }
1477}
1478impl ::core::default::Default for KbscnP15ModeReg {
1479    #[inline(always)]
1480    fn default() -> KbscnP15ModeReg {
1481        <crate::RegValueT<KbscnP15ModeReg_SPEC> as RegisterValue<_>>::new(0)
1482    }
1483}
1484
1485#[doc(hidden)]
1486#[derive(Copy, Clone, Eq, PartialEq)]
1487pub struct KbscnP16ModeReg_SPEC;
1488impl crate::sealed::RegSpec for KbscnP16ModeReg_SPEC {
1489    type DataType = u16;
1490}
1491
1492#[doc = "Defines the keyboard mode for P16"]
1493pub type KbscnP16ModeReg = crate::RegValueT<KbscnP16ModeReg_SPEC>;
1494
1495impl KbscnP16ModeReg {
1496    #[doc = "\'1\' GPIO is enable for row or column"]
1497    #[inline(always)]
1498    pub fn kbscn_gpio_en(
1499        self,
1500    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP16ModeReg_SPEC, crate::common::RW> {
1501        crate::common::RegisterFieldBool::<6,1,0,KbscnP16ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1502    }
1503
1504    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
1505    #[inline(always)]
1506    pub fn kbscn_row(
1507        self,
1508    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP16ModeReg_SPEC, crate::common::RW> {
1509        crate::common::RegisterFieldBool::<5,1,0,KbscnP16ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1510    }
1511
1512    #[doc = "Defines the row/column index that has to be connected"]
1513    #[inline(always)]
1514    pub fn kbscn_mode(
1515        self,
1516    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP16ModeReg_SPEC, crate::common::RW>
1517    {
1518        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP16ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1519    }
1520}
1521impl ::core::default::Default for KbscnP16ModeReg {
1522    #[inline(always)]
1523    fn default() -> KbscnP16ModeReg {
1524        <crate::RegValueT<KbscnP16ModeReg_SPEC> as RegisterValue<_>>::new(0)
1525    }
1526}
1527
1528#[doc(hidden)]
1529#[derive(Copy, Clone, Eq, PartialEq)]
1530pub struct KbscnP17ModeReg_SPEC;
1531impl crate::sealed::RegSpec for KbscnP17ModeReg_SPEC {
1532    type DataType = u16;
1533}
1534
1535#[doc = "Defines the keyboard mode for P17"]
1536pub type KbscnP17ModeReg = crate::RegValueT<KbscnP17ModeReg_SPEC>;
1537
1538impl KbscnP17ModeReg {
1539    #[doc = "\'1\' GPIO is enable for row or column"]
1540    #[inline(always)]
1541    pub fn kbscn_gpio_en(
1542        self,
1543    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP17ModeReg_SPEC, crate::common::RW> {
1544        crate::common::RegisterFieldBool::<6,1,0,KbscnP17ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1545    }
1546
1547    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
1548    #[inline(always)]
1549    pub fn kbscn_row(
1550        self,
1551    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP17ModeReg_SPEC, crate::common::RW> {
1552        crate::common::RegisterFieldBool::<5,1,0,KbscnP17ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1553    }
1554
1555    #[doc = "Defines the row/column index that has to be connected"]
1556    #[inline(always)]
1557    pub fn kbscn_mode(
1558        self,
1559    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP17ModeReg_SPEC, crate::common::RW>
1560    {
1561        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP17ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1562    }
1563}
1564impl ::core::default::Default for KbscnP17ModeReg {
1565    #[inline(always)]
1566    fn default() -> KbscnP17ModeReg {
1567        <crate::RegValueT<KbscnP17ModeReg_SPEC> as RegisterValue<_>>::new(0)
1568    }
1569}
1570
1571#[doc(hidden)]
1572#[derive(Copy, Clone, Eq, PartialEq)]
1573pub struct KbscnP20ModeReg_SPEC;
1574impl crate::sealed::RegSpec for KbscnP20ModeReg_SPEC {
1575    type DataType = u16;
1576}
1577
1578#[doc = "Defines the keyboard mode for P20"]
1579pub type KbscnP20ModeReg = crate::RegValueT<KbscnP20ModeReg_SPEC>;
1580
1581impl KbscnP20ModeReg {
1582    #[doc = "\'1\' GPIO is enable for row or column"]
1583    #[inline(always)]
1584    pub fn kbscn_gpio_en(
1585        self,
1586    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP20ModeReg_SPEC, crate::common::RW> {
1587        crate::common::RegisterFieldBool::<6,1,0,KbscnP20ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1588    }
1589
1590    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
1591    #[inline(always)]
1592    pub fn kbscn_row(
1593        self,
1594    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP20ModeReg_SPEC, crate::common::RW> {
1595        crate::common::RegisterFieldBool::<5,1,0,KbscnP20ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1596    }
1597
1598    #[doc = "Defines the row/column index that has to be connected"]
1599    #[inline(always)]
1600    pub fn kbscn_mode(
1601        self,
1602    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP20ModeReg_SPEC, crate::common::RW>
1603    {
1604        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP20ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1605    }
1606}
1607impl ::core::default::Default for KbscnP20ModeReg {
1608    #[inline(always)]
1609    fn default() -> KbscnP20ModeReg {
1610        <crate::RegValueT<KbscnP20ModeReg_SPEC> as RegisterValue<_>>::new(0)
1611    }
1612}
1613
1614#[doc(hidden)]
1615#[derive(Copy, Clone, Eq, PartialEq)]
1616pub struct KbscnP21ModeReg_SPEC;
1617impl crate::sealed::RegSpec for KbscnP21ModeReg_SPEC {
1618    type DataType = u16;
1619}
1620
1621#[doc = "Defines the keyboard mode for P21"]
1622pub type KbscnP21ModeReg = crate::RegValueT<KbscnP21ModeReg_SPEC>;
1623
1624impl KbscnP21ModeReg {
1625    #[doc = "\'1\' GPIO is enable for row or column"]
1626    #[inline(always)]
1627    pub fn kbscn_gpio_en(
1628        self,
1629    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP21ModeReg_SPEC, crate::common::RW> {
1630        crate::common::RegisterFieldBool::<6,1,0,KbscnP21ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1631    }
1632
1633    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
1634    #[inline(always)]
1635    pub fn kbscn_row(
1636        self,
1637    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP21ModeReg_SPEC, crate::common::RW> {
1638        crate::common::RegisterFieldBool::<5,1,0,KbscnP21ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1639    }
1640
1641    #[doc = "Defines the row/column index that has to be connected"]
1642    #[inline(always)]
1643    pub fn kbscn_mode(
1644        self,
1645    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP21ModeReg_SPEC, crate::common::RW>
1646    {
1647        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP21ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1648    }
1649}
1650impl ::core::default::Default for KbscnP21ModeReg {
1651    #[inline(always)]
1652    fn default() -> KbscnP21ModeReg {
1653        <crate::RegValueT<KbscnP21ModeReg_SPEC> as RegisterValue<_>>::new(0)
1654    }
1655}
1656
1657#[doc(hidden)]
1658#[derive(Copy, Clone, Eq, PartialEq)]
1659pub struct KbscnP22ModeReg_SPEC;
1660impl crate::sealed::RegSpec for KbscnP22ModeReg_SPEC {
1661    type DataType = u16;
1662}
1663
1664#[doc = "Defines the keyboard mode for P22"]
1665pub type KbscnP22ModeReg = crate::RegValueT<KbscnP22ModeReg_SPEC>;
1666
1667impl KbscnP22ModeReg {
1668    #[doc = "\'1\' GPIO is enable for row or column"]
1669    #[inline(always)]
1670    pub fn kbscn_gpio_en(
1671        self,
1672    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP22ModeReg_SPEC, crate::common::RW> {
1673        crate::common::RegisterFieldBool::<6,1,0,KbscnP22ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1674    }
1675
1676    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
1677    #[inline(always)]
1678    pub fn kbscn_row(
1679        self,
1680    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP22ModeReg_SPEC, crate::common::RW> {
1681        crate::common::RegisterFieldBool::<5,1,0,KbscnP22ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1682    }
1683
1684    #[doc = "Defines the row/column index that has to be connected"]
1685    #[inline(always)]
1686    pub fn kbscn_mode(
1687        self,
1688    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP22ModeReg_SPEC, crate::common::RW>
1689    {
1690        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP22ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1691    }
1692}
1693impl ::core::default::Default for KbscnP22ModeReg {
1694    #[inline(always)]
1695    fn default() -> KbscnP22ModeReg {
1696        <crate::RegValueT<KbscnP22ModeReg_SPEC> as RegisterValue<_>>::new(0)
1697    }
1698}
1699
1700#[doc(hidden)]
1701#[derive(Copy, Clone, Eq, PartialEq)]
1702pub struct KbscnP23ModeReg_SPEC;
1703impl crate::sealed::RegSpec for KbscnP23ModeReg_SPEC {
1704    type DataType = u16;
1705}
1706
1707#[doc = "Defines the keyboard mode for P23"]
1708pub type KbscnP23ModeReg = crate::RegValueT<KbscnP23ModeReg_SPEC>;
1709
1710impl KbscnP23ModeReg {
1711    #[doc = "\'1\' GPIO is enable for row or column"]
1712    #[inline(always)]
1713    pub fn kbscn_gpio_en(
1714        self,
1715    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP23ModeReg_SPEC, crate::common::RW> {
1716        crate::common::RegisterFieldBool::<6,1,0,KbscnP23ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1717    }
1718
1719    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
1720    #[inline(always)]
1721    pub fn kbscn_row(
1722        self,
1723    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP23ModeReg_SPEC, crate::common::RW> {
1724        crate::common::RegisterFieldBool::<5,1,0,KbscnP23ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1725    }
1726
1727    #[doc = "Defines the row/column index that has to be connected"]
1728    #[inline(always)]
1729    pub fn kbscn_mode(
1730        self,
1731    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP23ModeReg_SPEC, crate::common::RW>
1732    {
1733        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP23ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1734    }
1735}
1736impl ::core::default::Default for KbscnP23ModeReg {
1737    #[inline(always)]
1738    fn default() -> KbscnP23ModeReg {
1739        <crate::RegValueT<KbscnP23ModeReg_SPEC> as RegisterValue<_>>::new(0)
1740    }
1741}
1742
1743#[doc(hidden)]
1744#[derive(Copy, Clone, Eq, PartialEq)]
1745pub struct KbscnP24ModeReg_SPEC;
1746impl crate::sealed::RegSpec for KbscnP24ModeReg_SPEC {
1747    type DataType = u16;
1748}
1749
1750#[doc = "Defines the keyboard mode for P24"]
1751pub type KbscnP24ModeReg = crate::RegValueT<KbscnP24ModeReg_SPEC>;
1752
1753impl KbscnP24ModeReg {
1754    #[doc = "\'1\' GPIO is enable for row or column"]
1755    #[inline(always)]
1756    pub fn kbscn_gpio_en(
1757        self,
1758    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP24ModeReg_SPEC, crate::common::RW> {
1759        crate::common::RegisterFieldBool::<6,1,0,KbscnP24ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1760    }
1761
1762    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
1763    #[inline(always)]
1764    pub fn kbscn_row(
1765        self,
1766    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP24ModeReg_SPEC, crate::common::RW> {
1767        crate::common::RegisterFieldBool::<5,1,0,KbscnP24ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1768    }
1769
1770    #[doc = "Defines the row/column index that has to be connected"]
1771    #[inline(always)]
1772    pub fn kbscn_mode(
1773        self,
1774    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP24ModeReg_SPEC, crate::common::RW>
1775    {
1776        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP24ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1777    }
1778}
1779impl ::core::default::Default for KbscnP24ModeReg {
1780    #[inline(always)]
1781    fn default() -> KbscnP24ModeReg {
1782        <crate::RegValueT<KbscnP24ModeReg_SPEC> as RegisterValue<_>>::new(0)
1783    }
1784}
1785
1786#[doc(hidden)]
1787#[derive(Copy, Clone, Eq, PartialEq)]
1788pub struct KbscnP30ModeReg_SPEC;
1789impl crate::sealed::RegSpec for KbscnP30ModeReg_SPEC {
1790    type DataType = u16;
1791}
1792
1793#[doc = "Defines the keyboard mode for P30"]
1794pub type KbscnP30ModeReg = crate::RegValueT<KbscnP30ModeReg_SPEC>;
1795
1796impl KbscnP30ModeReg {
1797    #[doc = "\'1\' GPIO is enable for row or column"]
1798    #[inline(always)]
1799    pub fn kbscn_gpio_en(
1800        self,
1801    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP30ModeReg_SPEC, crate::common::RW> {
1802        crate::common::RegisterFieldBool::<6,1,0,KbscnP30ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1803    }
1804
1805    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
1806    #[inline(always)]
1807    pub fn kbscn_row(
1808        self,
1809    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP30ModeReg_SPEC, crate::common::RW> {
1810        crate::common::RegisterFieldBool::<5,1,0,KbscnP30ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1811    }
1812
1813    #[doc = "Defines the row/column index that has to be connected"]
1814    #[inline(always)]
1815    pub fn kbscn_mode(
1816        self,
1817    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP30ModeReg_SPEC, crate::common::RW>
1818    {
1819        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP30ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1820    }
1821}
1822impl ::core::default::Default for KbscnP30ModeReg {
1823    #[inline(always)]
1824    fn default() -> KbscnP30ModeReg {
1825        <crate::RegValueT<KbscnP30ModeReg_SPEC> as RegisterValue<_>>::new(0)
1826    }
1827}
1828
1829#[doc(hidden)]
1830#[derive(Copy, Clone, Eq, PartialEq)]
1831pub struct KbscnP31ModeReg_SPEC;
1832impl crate::sealed::RegSpec for KbscnP31ModeReg_SPEC {
1833    type DataType = u16;
1834}
1835
1836#[doc = "Defines the keyboard mode for P31"]
1837pub type KbscnP31ModeReg = crate::RegValueT<KbscnP31ModeReg_SPEC>;
1838
1839impl KbscnP31ModeReg {
1840    #[doc = "\'1\' GPIO is enable for row or column"]
1841    #[inline(always)]
1842    pub fn kbscn_gpio_en(
1843        self,
1844    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP31ModeReg_SPEC, crate::common::RW> {
1845        crate::common::RegisterFieldBool::<6,1,0,KbscnP31ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1846    }
1847
1848    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
1849    #[inline(always)]
1850    pub fn kbscn_row(
1851        self,
1852    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP31ModeReg_SPEC, crate::common::RW> {
1853        crate::common::RegisterFieldBool::<5,1,0,KbscnP31ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1854    }
1855
1856    #[doc = "Defines the row/column index that has to be connected"]
1857    #[inline(always)]
1858    pub fn kbscn_mode(
1859        self,
1860    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP31ModeReg_SPEC, crate::common::RW>
1861    {
1862        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP31ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1863    }
1864}
1865impl ::core::default::Default for KbscnP31ModeReg {
1866    #[inline(always)]
1867    fn default() -> KbscnP31ModeReg {
1868        <crate::RegValueT<KbscnP31ModeReg_SPEC> as RegisterValue<_>>::new(0)
1869    }
1870}
1871
1872#[doc(hidden)]
1873#[derive(Copy, Clone, Eq, PartialEq)]
1874pub struct KbscnP32ModeReg_SPEC;
1875impl crate::sealed::RegSpec for KbscnP32ModeReg_SPEC {
1876    type DataType = u16;
1877}
1878
1879#[doc = "Defines the keyboard mode for P32"]
1880pub type KbscnP32ModeReg = crate::RegValueT<KbscnP32ModeReg_SPEC>;
1881
1882impl KbscnP32ModeReg {
1883    #[doc = "\'1\' GPIO is enable for row or column"]
1884    #[inline(always)]
1885    pub fn kbscn_gpio_en(
1886        self,
1887    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP32ModeReg_SPEC, crate::common::RW> {
1888        crate::common::RegisterFieldBool::<6,1,0,KbscnP32ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1889    }
1890
1891    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
1892    #[inline(always)]
1893    pub fn kbscn_row(
1894        self,
1895    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP32ModeReg_SPEC, crate::common::RW> {
1896        crate::common::RegisterFieldBool::<5,1,0,KbscnP32ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1897    }
1898
1899    #[doc = "Defines the row/column index that has to be connected"]
1900    #[inline(always)]
1901    pub fn kbscn_mode(
1902        self,
1903    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP32ModeReg_SPEC, crate::common::RW>
1904    {
1905        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP32ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1906    }
1907}
1908impl ::core::default::Default for KbscnP32ModeReg {
1909    #[inline(always)]
1910    fn default() -> KbscnP32ModeReg {
1911        <crate::RegValueT<KbscnP32ModeReg_SPEC> as RegisterValue<_>>::new(0)
1912    }
1913}
1914
1915#[doc(hidden)]
1916#[derive(Copy, Clone, Eq, PartialEq)]
1917pub struct KbscnP33ModeReg_SPEC;
1918impl crate::sealed::RegSpec for KbscnP33ModeReg_SPEC {
1919    type DataType = u16;
1920}
1921
1922#[doc = "Defines the keyboard mode for P33"]
1923pub type KbscnP33ModeReg = crate::RegValueT<KbscnP33ModeReg_SPEC>;
1924
1925impl KbscnP33ModeReg {
1926    #[doc = "\'1\' GPIO is enable for row or column"]
1927    #[inline(always)]
1928    pub fn kbscn_gpio_en(
1929        self,
1930    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP33ModeReg_SPEC, crate::common::RW> {
1931        crate::common::RegisterFieldBool::<6,1,0,KbscnP33ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1932    }
1933
1934    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
1935    #[inline(always)]
1936    pub fn kbscn_row(
1937        self,
1938    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP33ModeReg_SPEC, crate::common::RW> {
1939        crate::common::RegisterFieldBool::<5,1,0,KbscnP33ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1940    }
1941
1942    #[doc = "Defines the row/column index that has to be connected"]
1943    #[inline(always)]
1944    pub fn kbscn_mode(
1945        self,
1946    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP33ModeReg_SPEC, crate::common::RW>
1947    {
1948        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP33ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1949    }
1950}
1951impl ::core::default::Default for KbscnP33ModeReg {
1952    #[inline(always)]
1953    fn default() -> KbscnP33ModeReg {
1954        <crate::RegValueT<KbscnP33ModeReg_SPEC> as RegisterValue<_>>::new(0)
1955    }
1956}
1957
1958#[doc(hidden)]
1959#[derive(Copy, Clone, Eq, PartialEq)]
1960pub struct KbscnP34ModeReg_SPEC;
1961impl crate::sealed::RegSpec for KbscnP34ModeReg_SPEC {
1962    type DataType = u16;
1963}
1964
1965#[doc = "Defines the keyboard mode for P34"]
1966pub type KbscnP34ModeReg = crate::RegValueT<KbscnP34ModeReg_SPEC>;
1967
1968impl KbscnP34ModeReg {
1969    #[doc = "\'1\' GPIO is enable for row or column"]
1970    #[inline(always)]
1971    pub fn kbscn_gpio_en(
1972        self,
1973    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP34ModeReg_SPEC, crate::common::RW> {
1974        crate::common::RegisterFieldBool::<6,1,0,KbscnP34ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1975    }
1976
1977    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
1978    #[inline(always)]
1979    pub fn kbscn_row(
1980        self,
1981    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP34ModeReg_SPEC, crate::common::RW> {
1982        crate::common::RegisterFieldBool::<5,1,0,KbscnP34ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1983    }
1984
1985    #[doc = "Defines the row/column index that has to be connected"]
1986    #[inline(always)]
1987    pub fn kbscn_mode(
1988        self,
1989    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP34ModeReg_SPEC, crate::common::RW>
1990    {
1991        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP34ModeReg_SPEC,crate::common::RW>::from_register(self,0)
1992    }
1993}
1994impl ::core::default::Default for KbscnP34ModeReg {
1995    #[inline(always)]
1996    fn default() -> KbscnP34ModeReg {
1997        <crate::RegValueT<KbscnP34ModeReg_SPEC> as RegisterValue<_>>::new(0)
1998    }
1999}
2000
2001#[doc(hidden)]
2002#[derive(Copy, Clone, Eq, PartialEq)]
2003pub struct KbscnP35ModeReg_SPEC;
2004impl crate::sealed::RegSpec for KbscnP35ModeReg_SPEC {
2005    type DataType = u16;
2006}
2007
2008#[doc = "Defines the keyboard mode for P35"]
2009pub type KbscnP35ModeReg = crate::RegValueT<KbscnP35ModeReg_SPEC>;
2010
2011impl KbscnP35ModeReg {
2012    #[doc = "\'1\' GPIO is enable for row or column"]
2013    #[inline(always)]
2014    pub fn kbscn_gpio_en(
2015        self,
2016    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP35ModeReg_SPEC, crate::common::RW> {
2017        crate::common::RegisterFieldBool::<6,1,0,KbscnP35ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2018    }
2019
2020    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
2021    #[inline(always)]
2022    pub fn kbscn_row(
2023        self,
2024    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP35ModeReg_SPEC, crate::common::RW> {
2025        crate::common::RegisterFieldBool::<5,1,0,KbscnP35ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2026    }
2027
2028    #[doc = "Defines the row/column index that has to be connected"]
2029    #[inline(always)]
2030    pub fn kbscn_mode(
2031        self,
2032    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP35ModeReg_SPEC, crate::common::RW>
2033    {
2034        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP35ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2035    }
2036}
2037impl ::core::default::Default for KbscnP35ModeReg {
2038    #[inline(always)]
2039    fn default() -> KbscnP35ModeReg {
2040        <crate::RegValueT<KbscnP35ModeReg_SPEC> as RegisterValue<_>>::new(0)
2041    }
2042}
2043
2044#[doc(hidden)]
2045#[derive(Copy, Clone, Eq, PartialEq)]
2046pub struct KbscnP36ModeReg_SPEC;
2047impl crate::sealed::RegSpec for KbscnP36ModeReg_SPEC {
2048    type DataType = u16;
2049}
2050
2051#[doc = "Defines the keyboard mode for P36"]
2052pub type KbscnP36ModeReg = crate::RegValueT<KbscnP36ModeReg_SPEC>;
2053
2054impl KbscnP36ModeReg {
2055    #[doc = "\'1\' GPIO is enable for row or column"]
2056    #[inline(always)]
2057    pub fn kbscn_gpio_en(
2058        self,
2059    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP36ModeReg_SPEC, crate::common::RW> {
2060        crate::common::RegisterFieldBool::<6,1,0,KbscnP36ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2061    }
2062
2063    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
2064    #[inline(always)]
2065    pub fn kbscn_row(
2066        self,
2067    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP36ModeReg_SPEC, crate::common::RW> {
2068        crate::common::RegisterFieldBool::<5,1,0,KbscnP36ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2069    }
2070
2071    #[doc = "Defines the row/column index that has to be connected"]
2072    #[inline(always)]
2073    pub fn kbscn_mode(
2074        self,
2075    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP36ModeReg_SPEC, crate::common::RW>
2076    {
2077        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP36ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2078    }
2079}
2080impl ::core::default::Default for KbscnP36ModeReg {
2081    #[inline(always)]
2082    fn default() -> KbscnP36ModeReg {
2083        <crate::RegValueT<KbscnP36ModeReg_SPEC> as RegisterValue<_>>::new(0)
2084    }
2085}
2086
2087#[doc(hidden)]
2088#[derive(Copy, Clone, Eq, PartialEq)]
2089pub struct KbscnP37ModeReg_SPEC;
2090impl crate::sealed::RegSpec for KbscnP37ModeReg_SPEC {
2091    type DataType = u16;
2092}
2093
2094#[doc = "Defines the keyboard mode for P37"]
2095pub type KbscnP37ModeReg = crate::RegValueT<KbscnP37ModeReg_SPEC>;
2096
2097impl KbscnP37ModeReg {
2098    #[doc = "\'1\' GPIO is enable for row or column"]
2099    #[inline(always)]
2100    pub fn kbscn_gpio_en(
2101        self,
2102    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP37ModeReg_SPEC, crate::common::RW> {
2103        crate::common::RegisterFieldBool::<6,1,0,KbscnP37ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2104    }
2105
2106    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
2107    #[inline(always)]
2108    pub fn kbscn_row(
2109        self,
2110    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP37ModeReg_SPEC, crate::common::RW> {
2111        crate::common::RegisterFieldBool::<5,1,0,KbscnP37ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2112    }
2113
2114    #[doc = "Defines the row/column index that has to be connected"]
2115    #[inline(always)]
2116    pub fn kbscn_mode(
2117        self,
2118    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP37ModeReg_SPEC, crate::common::RW>
2119    {
2120        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP37ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2121    }
2122}
2123impl ::core::default::Default for KbscnP37ModeReg {
2124    #[inline(always)]
2125    fn default() -> KbscnP37ModeReg {
2126        <crate::RegValueT<KbscnP37ModeReg_SPEC> as RegisterValue<_>>::new(0)
2127    }
2128}
2129
2130#[doc(hidden)]
2131#[derive(Copy, Clone, Eq, PartialEq)]
2132pub struct KbscnP40ModeReg_SPEC;
2133impl crate::sealed::RegSpec for KbscnP40ModeReg_SPEC {
2134    type DataType = u16;
2135}
2136
2137#[doc = "Defines the keyboard mode for P40"]
2138pub type KbscnP40ModeReg = crate::RegValueT<KbscnP40ModeReg_SPEC>;
2139
2140impl KbscnP40ModeReg {
2141    #[doc = "\'1\' GPIO is enable for row or column"]
2142    #[inline(always)]
2143    pub fn kbscn_gpio_en(
2144        self,
2145    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP40ModeReg_SPEC, crate::common::RW> {
2146        crate::common::RegisterFieldBool::<6,1,0,KbscnP40ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2147    }
2148
2149    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
2150    #[inline(always)]
2151    pub fn kbscn_row(
2152        self,
2153    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP40ModeReg_SPEC, crate::common::RW> {
2154        crate::common::RegisterFieldBool::<5,1,0,KbscnP40ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2155    }
2156
2157    #[doc = "Defines the row/column index that has to be connected"]
2158    #[inline(always)]
2159    pub fn kbscn_mode(
2160        self,
2161    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP40ModeReg_SPEC, crate::common::RW>
2162    {
2163        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP40ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2164    }
2165}
2166impl ::core::default::Default for KbscnP40ModeReg {
2167    #[inline(always)]
2168    fn default() -> KbscnP40ModeReg {
2169        <crate::RegValueT<KbscnP40ModeReg_SPEC> as RegisterValue<_>>::new(0)
2170    }
2171}
2172
2173#[doc(hidden)]
2174#[derive(Copy, Clone, Eq, PartialEq)]
2175pub struct KbscnP41ModeReg_SPEC;
2176impl crate::sealed::RegSpec for KbscnP41ModeReg_SPEC {
2177    type DataType = u16;
2178}
2179
2180#[doc = "Defines the keyboard mode for P41"]
2181pub type KbscnP41ModeReg = crate::RegValueT<KbscnP41ModeReg_SPEC>;
2182
2183impl KbscnP41ModeReg {
2184    #[doc = "\'1\' GPIO is enable for row or column"]
2185    #[inline(always)]
2186    pub fn kbscn_gpio_en(
2187        self,
2188    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP41ModeReg_SPEC, crate::common::RW> {
2189        crate::common::RegisterFieldBool::<6,1,0,KbscnP41ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2190    }
2191
2192    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
2193    #[inline(always)]
2194    pub fn kbscn_row(
2195        self,
2196    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP41ModeReg_SPEC, crate::common::RW> {
2197        crate::common::RegisterFieldBool::<5,1,0,KbscnP41ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2198    }
2199
2200    #[doc = "Defines the row/column index that has to be connected"]
2201    #[inline(always)]
2202    pub fn kbscn_mode(
2203        self,
2204    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP41ModeReg_SPEC, crate::common::RW>
2205    {
2206        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP41ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2207    }
2208}
2209impl ::core::default::Default for KbscnP41ModeReg {
2210    #[inline(always)]
2211    fn default() -> KbscnP41ModeReg {
2212        <crate::RegValueT<KbscnP41ModeReg_SPEC> as RegisterValue<_>>::new(0)
2213    }
2214}
2215
2216#[doc(hidden)]
2217#[derive(Copy, Clone, Eq, PartialEq)]
2218pub struct KbscnP42ModeReg_SPEC;
2219impl crate::sealed::RegSpec for KbscnP42ModeReg_SPEC {
2220    type DataType = u16;
2221}
2222
2223#[doc = "Defines the keyboard mode for P42"]
2224pub type KbscnP42ModeReg = crate::RegValueT<KbscnP42ModeReg_SPEC>;
2225
2226impl KbscnP42ModeReg {
2227    #[doc = "\'1\' GPIO is enable for row or column"]
2228    #[inline(always)]
2229    pub fn kbscn_gpio_en(
2230        self,
2231    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP42ModeReg_SPEC, crate::common::RW> {
2232        crate::common::RegisterFieldBool::<6,1,0,KbscnP42ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2233    }
2234
2235    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
2236    #[inline(always)]
2237    pub fn kbscn_row(
2238        self,
2239    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP42ModeReg_SPEC, crate::common::RW> {
2240        crate::common::RegisterFieldBool::<5,1,0,KbscnP42ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2241    }
2242
2243    #[doc = "Defines the row/column index that has to be connected"]
2244    #[inline(always)]
2245    pub fn kbscn_mode(
2246        self,
2247    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP42ModeReg_SPEC, crate::common::RW>
2248    {
2249        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP42ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2250    }
2251}
2252impl ::core::default::Default for KbscnP42ModeReg {
2253    #[inline(always)]
2254    fn default() -> KbscnP42ModeReg {
2255        <crate::RegValueT<KbscnP42ModeReg_SPEC> as RegisterValue<_>>::new(0)
2256    }
2257}
2258
2259#[doc(hidden)]
2260#[derive(Copy, Clone, Eq, PartialEq)]
2261pub struct KbscnP43ModeReg_SPEC;
2262impl crate::sealed::RegSpec for KbscnP43ModeReg_SPEC {
2263    type DataType = u16;
2264}
2265
2266#[doc = "Defines the keyboard mode for P43"]
2267pub type KbscnP43ModeReg = crate::RegValueT<KbscnP43ModeReg_SPEC>;
2268
2269impl KbscnP43ModeReg {
2270    #[doc = "\'1\' GPIO is enable for row or column"]
2271    #[inline(always)]
2272    pub fn kbscn_gpio_en(
2273        self,
2274    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP43ModeReg_SPEC, crate::common::RW> {
2275        crate::common::RegisterFieldBool::<6,1,0,KbscnP43ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2276    }
2277
2278    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
2279    #[inline(always)]
2280    pub fn kbscn_row(
2281        self,
2282    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP43ModeReg_SPEC, crate::common::RW> {
2283        crate::common::RegisterFieldBool::<5,1,0,KbscnP43ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2284    }
2285
2286    #[doc = "Defines the row/column index that has to be connected"]
2287    #[inline(always)]
2288    pub fn kbscn_mode(
2289        self,
2290    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP43ModeReg_SPEC, crate::common::RW>
2291    {
2292        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP43ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2293    }
2294}
2295impl ::core::default::Default for KbscnP43ModeReg {
2296    #[inline(always)]
2297    fn default() -> KbscnP43ModeReg {
2298        <crate::RegValueT<KbscnP43ModeReg_SPEC> as RegisterValue<_>>::new(0)
2299    }
2300}
2301
2302#[doc(hidden)]
2303#[derive(Copy, Clone, Eq, PartialEq)]
2304pub struct KbscnP44ModeReg_SPEC;
2305impl crate::sealed::RegSpec for KbscnP44ModeReg_SPEC {
2306    type DataType = u16;
2307}
2308
2309#[doc = "Defines the keyboard mode for P44"]
2310pub type KbscnP44ModeReg = crate::RegValueT<KbscnP44ModeReg_SPEC>;
2311
2312impl KbscnP44ModeReg {
2313    #[doc = "\'1\' GPIO is enable for row or column"]
2314    #[inline(always)]
2315    pub fn kbscn_gpio_en(
2316        self,
2317    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP44ModeReg_SPEC, crate::common::RW> {
2318        crate::common::RegisterFieldBool::<6,1,0,KbscnP44ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2319    }
2320
2321    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
2322    #[inline(always)]
2323    pub fn kbscn_row(
2324        self,
2325    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP44ModeReg_SPEC, crate::common::RW> {
2326        crate::common::RegisterFieldBool::<5,1,0,KbscnP44ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2327    }
2328
2329    #[doc = "Defines the row/column index that has to be connected"]
2330    #[inline(always)]
2331    pub fn kbscn_mode(
2332        self,
2333    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP44ModeReg_SPEC, crate::common::RW>
2334    {
2335        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP44ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2336    }
2337}
2338impl ::core::default::Default for KbscnP44ModeReg {
2339    #[inline(always)]
2340    fn default() -> KbscnP44ModeReg {
2341        <crate::RegValueT<KbscnP44ModeReg_SPEC> as RegisterValue<_>>::new(0)
2342    }
2343}
2344
2345#[doc(hidden)]
2346#[derive(Copy, Clone, Eq, PartialEq)]
2347pub struct KbscnP45ModeReg_SPEC;
2348impl crate::sealed::RegSpec for KbscnP45ModeReg_SPEC {
2349    type DataType = u16;
2350}
2351
2352#[doc = "Defines the keyboard mode for P45"]
2353pub type KbscnP45ModeReg = crate::RegValueT<KbscnP45ModeReg_SPEC>;
2354
2355impl KbscnP45ModeReg {
2356    #[doc = "\'1\' GPIO is enable for row or column"]
2357    #[inline(always)]
2358    pub fn kbscn_gpio_en(
2359        self,
2360    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP45ModeReg_SPEC, crate::common::RW> {
2361        crate::common::RegisterFieldBool::<6,1,0,KbscnP45ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2362    }
2363
2364    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
2365    #[inline(always)]
2366    pub fn kbscn_row(
2367        self,
2368    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP45ModeReg_SPEC, crate::common::RW> {
2369        crate::common::RegisterFieldBool::<5,1,0,KbscnP45ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2370    }
2371
2372    #[doc = "Defines the row/column index that has to be connected"]
2373    #[inline(always)]
2374    pub fn kbscn_mode(
2375        self,
2376    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP45ModeReg_SPEC, crate::common::RW>
2377    {
2378        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP45ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2379    }
2380}
2381impl ::core::default::Default for KbscnP45ModeReg {
2382    #[inline(always)]
2383    fn default() -> KbscnP45ModeReg {
2384        <crate::RegValueT<KbscnP45ModeReg_SPEC> as RegisterValue<_>>::new(0)
2385    }
2386}
2387
2388#[doc(hidden)]
2389#[derive(Copy, Clone, Eq, PartialEq)]
2390pub struct KbscnP46ModeReg_SPEC;
2391impl crate::sealed::RegSpec for KbscnP46ModeReg_SPEC {
2392    type DataType = u16;
2393}
2394
2395#[doc = "Defines the keyboard mode for P46"]
2396pub type KbscnP46ModeReg = crate::RegValueT<KbscnP46ModeReg_SPEC>;
2397
2398impl KbscnP46ModeReg {
2399    #[doc = "\'1\' GPIO is enable for row or column"]
2400    #[inline(always)]
2401    pub fn kbscn_gpio_en(
2402        self,
2403    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP46ModeReg_SPEC, crate::common::RW> {
2404        crate::common::RegisterFieldBool::<6,1,0,KbscnP46ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2405    }
2406
2407    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
2408    #[inline(always)]
2409    pub fn kbscn_row(
2410        self,
2411    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP46ModeReg_SPEC, crate::common::RW> {
2412        crate::common::RegisterFieldBool::<5,1,0,KbscnP46ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2413    }
2414
2415    #[doc = "Defines the row/column index that has to be connected"]
2416    #[inline(always)]
2417    pub fn kbscn_mode(
2418        self,
2419    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP46ModeReg_SPEC, crate::common::RW>
2420    {
2421        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP46ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2422    }
2423}
2424impl ::core::default::Default for KbscnP46ModeReg {
2425    #[inline(always)]
2426    fn default() -> KbscnP46ModeReg {
2427        <crate::RegValueT<KbscnP46ModeReg_SPEC> as RegisterValue<_>>::new(0)
2428    }
2429}
2430
2431#[doc(hidden)]
2432#[derive(Copy, Clone, Eq, PartialEq)]
2433pub struct KbscnP47ModeReg_SPEC;
2434impl crate::sealed::RegSpec for KbscnP47ModeReg_SPEC {
2435    type DataType = u16;
2436}
2437
2438#[doc = "Defines the keyboard mode for P47"]
2439pub type KbscnP47ModeReg = crate::RegValueT<KbscnP47ModeReg_SPEC>;
2440
2441impl KbscnP47ModeReg {
2442    #[doc = "\'1\' GPIO is enable for row or column"]
2443    #[inline(always)]
2444    pub fn kbscn_gpio_en(
2445        self,
2446    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbscnP47ModeReg_SPEC, crate::common::RW> {
2447        crate::common::RegisterFieldBool::<6,1,0,KbscnP47ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2448    }
2449
2450    #[doc = "\'1\' GPIO is row, \'0\' GPIO is column"]
2451    #[inline(always)]
2452    pub fn kbscn_row(
2453        self,
2454    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbscnP47ModeReg_SPEC, crate::common::RW> {
2455        crate::common::RegisterFieldBool::<5,1,0,KbscnP47ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2456    }
2457
2458    #[doc = "Defines the row/column index that has to be connected"]
2459    #[inline(always)]
2460    pub fn kbscn_mode(
2461        self,
2462    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, KbscnP47ModeReg_SPEC, crate::common::RW>
2463    {
2464        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,KbscnP47ModeReg_SPEC,crate::common::RW>::from_register(self,0)
2465    }
2466}
2467impl ::core::default::Default for KbscnP47ModeReg {
2468    #[inline(always)]
2469    fn default() -> KbscnP47ModeReg {
2470        <crate::RegValueT<KbscnP47ModeReg_SPEC> as RegisterValue<_>>::new(0)
2471    }
2472}
2473
2474#[doc(hidden)]
2475#[derive(Copy, Clone, Eq, PartialEq)]
2476pub struct KbscnStatusReg_SPEC;
2477impl crate::sealed::RegSpec for KbscnStatusReg_SPEC {
2478    type DataType = u16;
2479}
2480
2481#[doc = "keyboard scanner Interrupt status register"]
2482pub type KbscnStatusReg = crate::RegValueT<KbscnStatusReg_SPEC>;
2483
2484impl KbscnStatusReg {
2485    #[doc = "\'1\' Fifo Underflow occurred"]
2486    #[inline(always)]
2487    pub fn kbscn_fifo_underfl(
2488        self,
2489    ) -> crate::common::RegisterFieldBool<8, 1, 0, KbscnStatusReg_SPEC, crate::common::R> {
2490        crate::common::RegisterFieldBool::<8,1,0,KbscnStatusReg_SPEC,crate::common::R>::from_register(self,0)
2491    }
2492
2493    #[doc = "\'1\' Fifo Overflow occurred"]
2494    #[inline(always)]
2495    pub fn kbscn_fifo_overfl(
2496        self,
2497    ) -> crate::common::RegisterFieldBool<7, 1, 0, KbscnStatusReg_SPEC, crate::common::R> {
2498        crate::common::RegisterFieldBool::<7,1,0,KbscnStatusReg_SPEC,crate::common::R>::from_register(self,0)
2499    }
2500
2501    #[doc = "Defines how many messages there are in the fifo."]
2502    #[inline(always)]
2503    pub fn kbscn_num_message(
2504        self,
2505    ) -> crate::common::RegisterField<2, 0x1f, 1, 0, u8, u8, KbscnStatusReg_SPEC, crate::common::R>
2506    {
2507        crate::common::RegisterField::<2,0x1f,1,0,u8,u8,KbscnStatusReg_SPEC,crate::common::R>::from_register(self,0)
2508    }
2509
2510    #[doc = "There is no keyboard activity for a predefined time"]
2511    #[inline(always)]
2512    pub fn kbscn_inactive_irq_status(
2513        self,
2514    ) -> crate::common::RegisterFieldBool<1, 1, 0, KbscnStatusReg_SPEC, crate::common::R> {
2515        crate::common::RegisterFieldBool::<1,1,0,KbscnStatusReg_SPEC,crate::common::R>::from_register(self,0)
2516    }
2517
2518    #[doc = "There is at least one last message in the fifo."]
2519    #[inline(always)]
2520    pub fn kbscn_mes_irq_status(
2521        self,
2522    ) -> crate::common::RegisterFieldBool<0, 1, 0, KbscnStatusReg_SPEC, crate::common::R> {
2523        crate::common::RegisterFieldBool::<0,1,0,KbscnStatusReg_SPEC,crate::common::R>::from_register(self,0)
2524    }
2525}
2526impl ::core::default::Default for KbscnStatusReg {
2527    #[inline(always)]
2528    fn default() -> KbscnStatusReg {
2529        <crate::RegValueT<KbscnStatusReg_SPEC> as RegisterValue<_>>::new(0)
2530    }
2531}