da14531_pac/
kbrd.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:44:12 +0000
19
20#![allow(clippy::identity_op)]
21#![allow(clippy::module_inception)]
22#![allow(clippy::derivable_impls)]
23#[allow(unused_imports)]
24use crate::common::sealed;
25#[allow(unused_imports)]
26use crate::common::*;
27#[doc = r"KBRD registers"]
28unsafe impl ::core::marker::Send for super::Kbrd {}
29unsafe impl ::core::marker::Sync for super::Kbrd {}
30impl super::Kbrd {
31    #[allow(unused)]
32    #[inline(always)]
33    pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
34        self.ptr
35    }
36
37    #[doc = "debounce counter value for GPIO inputs"]
38    #[inline(always)]
39    pub const fn gpio_debounce_reg(
40        &self,
41    ) -> &'static crate::common::Reg<self::GpioDebounceReg_SPEC, crate::common::RW> {
42        unsafe {
43            crate::common::Reg::<self::GpioDebounceReg_SPEC, crate::common::RW>::from_ptr(
44                self._svd2pac_as_ptr().add(12usize),
45            )
46        }
47    }
48
49    #[doc = "high or low level select for GPIO interrupts"]
50    #[inline(always)]
51    pub const fn gpio_int_level_ctrl_reg(
52        &self,
53    ) -> &'static crate::common::Reg<self::GpioIntLevelCtrlReg_SPEC, crate::common::RW> {
54        unsafe {
55            crate::common::Reg::<self::GpioIntLevelCtrlReg_SPEC, crate::common::RW>::from_ptr(
56                self._svd2pac_as_ptr().add(16usize),
57            )
58        }
59    }
60
61    #[doc = "GPIO interrupt selection for GPIO_IRQ0"]
62    #[inline(always)]
63    pub const fn gpio_irq0_in_sel_reg(
64        &self,
65    ) -> &'static crate::common::Reg<self::GpioIrq0InSelReg_SPEC, crate::common::RW> {
66        unsafe {
67            crate::common::Reg::<self::GpioIrq0InSelReg_SPEC, crate::common::RW>::from_ptr(
68                self._svd2pac_as_ptr().add(0usize),
69            )
70        }
71    }
72
73    #[doc = "GPIO interrupt selection for GPIO_IRQ1"]
74    #[inline(always)]
75    pub const fn gpio_irq1_in_sel_reg(
76        &self,
77    ) -> &'static crate::common::Reg<self::GpioIrq1InSelReg_SPEC, crate::common::RW> {
78        unsafe {
79            crate::common::Reg::<self::GpioIrq1InSelReg_SPEC, crate::common::RW>::from_ptr(
80                self._svd2pac_as_ptr().add(2usize),
81            )
82        }
83    }
84
85    #[doc = "GPIO interrupt selection for GPIO_IRQ2"]
86    #[inline(always)]
87    pub const fn gpio_irq2_in_sel_reg(
88        &self,
89    ) -> &'static crate::common::Reg<self::GpioIrq2InSelReg_SPEC, crate::common::RW> {
90        unsafe {
91            crate::common::Reg::<self::GpioIrq2InSelReg_SPEC, crate::common::RW>::from_ptr(
92                self._svd2pac_as_ptr().add(4usize),
93            )
94        }
95    }
96
97    #[doc = "GPIO interrupt selection for GPIO_IRQ3"]
98    #[inline(always)]
99    pub const fn gpio_irq3_in_sel_reg(
100        &self,
101    ) -> &'static crate::common::Reg<self::GpioIrq3InSelReg_SPEC, crate::common::RW> {
102        unsafe {
103            crate::common::Reg::<self::GpioIrq3InSelReg_SPEC, crate::common::RW>::from_ptr(
104                self._svd2pac_as_ptr().add(6usize),
105            )
106        }
107    }
108
109    #[doc = "GPIO interrupt selection for GPIO_IRQ4"]
110    #[inline(always)]
111    pub const fn gpio_irq4_in_sel_reg(
112        &self,
113    ) -> &'static crate::common::Reg<self::GpioIrq4InSelReg_SPEC, crate::common::RW> {
114        unsafe {
115            crate::common::Reg::<self::GpioIrq4InSelReg_SPEC, crate::common::RW>::from_ptr(
116                self._svd2pac_as_ptr().add(8usize),
117            )
118        }
119    }
120
121    #[doc = "GPIO interrupt reset register"]
122    #[inline(always)]
123    pub const fn gpio_reset_irq_reg(
124        &self,
125    ) -> &'static crate::common::Reg<self::GpioResetIrqReg_SPEC, crate::common::RW> {
126        unsafe {
127            crate::common::Reg::<self::GpioResetIrqReg_SPEC, crate::common::RW>::from_ptr(
128                self._svd2pac_as_ptr().add(14usize),
129            )
130        }
131    }
132
133    #[doc = "GPIO Kbrd control register"]
134    #[inline(always)]
135    pub const fn kbrd_ctrl_reg(
136        &self,
137    ) -> &'static crate::common::Reg<self::KbrdCtrlReg_SPEC, crate::common::RW> {
138        unsafe {
139            crate::common::Reg::<self::KbrdCtrlReg_SPEC, crate::common::RW>::from_ptr(
140                self._svd2pac_as_ptr().add(20usize),
141            )
142        }
143    }
144
145    #[doc = "GPIO interrupt selection for KBRD_IRQ for P0"]
146    #[inline(always)]
147    pub const fn kbrd_irq_in_sel0_reg(
148        &self,
149    ) -> &'static crate::common::Reg<self::KbrdIrqInSel0Reg_SPEC, crate::common::RW> {
150        unsafe {
151            crate::common::Reg::<self::KbrdIrqInSel0Reg_SPEC, crate::common::RW>::from_ptr(
152                self._svd2pac_as_ptr().add(18usize),
153            )
154        }
155    }
156}
157#[doc(hidden)]
158#[derive(Copy, Clone, Eq, PartialEq)]
159pub struct GpioDebounceReg_SPEC;
160impl crate::sealed::RegSpec for GpioDebounceReg_SPEC {
161    type DataType = u16;
162}
163
164#[doc = "debounce counter value for GPIO inputs"]
165pub type GpioDebounceReg = crate::RegValueT<GpioDebounceReg_SPEC>;
166
167impl GpioDebounceReg {
168    #[doc = "enables the debounce counter for the KBRD interface"]
169    #[inline(always)]
170    pub fn deb_enable_kbrd(
171        self,
172    ) -> crate::common::RegisterFieldBool<11, 1, 0, GpioDebounceReg_SPEC, crate::common::RW> {
173        crate::common::RegisterFieldBool::<11,1,0,GpioDebounceReg_SPEC,crate::common::RW>::from_register(self,0)
174    }
175
176    #[doc = "enables the debounce counter for GPIO IRQ4"]
177    #[inline(always)]
178    pub fn deb_enable4(
179        self,
180    ) -> crate::common::RegisterFieldBool<10, 1, 0, GpioDebounceReg_SPEC, crate::common::RW> {
181        crate::common::RegisterFieldBool::<10,1,0,GpioDebounceReg_SPEC,crate::common::RW>::from_register(self,0)
182    }
183
184    #[doc = "enables the debounce counter for GPIO IRQ3"]
185    #[inline(always)]
186    pub fn deb_enable3(
187        self,
188    ) -> crate::common::RegisterFieldBool<9, 1, 0, GpioDebounceReg_SPEC, crate::common::RW> {
189        crate::common::RegisterFieldBool::<9,1,0,GpioDebounceReg_SPEC,crate::common::RW>::from_register(self,0)
190    }
191
192    #[doc = "enables the debounce counter for GPIO IRQ2"]
193    #[inline(always)]
194    pub fn deb_enable2(
195        self,
196    ) -> crate::common::RegisterFieldBool<8, 1, 0, GpioDebounceReg_SPEC, crate::common::RW> {
197        crate::common::RegisterFieldBool::<8,1,0,GpioDebounceReg_SPEC,crate::common::RW>::from_register(self,0)
198    }
199
200    #[doc = "enables the debounce counter for GPIO IRQ1"]
201    #[inline(always)]
202    pub fn deb_enable1(
203        self,
204    ) -> crate::common::RegisterFieldBool<7, 1, 0, GpioDebounceReg_SPEC, crate::common::RW> {
205        crate::common::RegisterFieldBool::<7,1,0,GpioDebounceReg_SPEC,crate::common::RW>::from_register(self,0)
206    }
207
208    #[doc = "enables the debounce counter for GPIO IRQ0"]
209    #[inline(always)]
210    pub fn deb_enable0(
211        self,
212    ) -> crate::common::RegisterFieldBool<6, 1, 0, GpioDebounceReg_SPEC, crate::common::RW> {
213        crate::common::RegisterFieldBool::<6,1,0,GpioDebounceReg_SPEC,crate::common::RW>::from_register(self,0)
214    }
215
216    #[doc = "Keyboard debounce time if enabled. Generate KEYB_INT after specified time.\nDebounce time: N*1 ms. N =0..63"]
217    #[inline(always)]
218    pub fn deb_value(
219        self,
220    ) -> crate::common::RegisterField<0, 0x3f, 1, 0, u8, u8, GpioDebounceReg_SPEC, crate::common::RW>
221    {
222        crate::common::RegisterField::<0,0x3f,1,0,u8,u8,GpioDebounceReg_SPEC,crate::common::RW>::from_register(self,0)
223    }
224}
225impl ::core::default::Default for GpioDebounceReg {
226    #[inline(always)]
227    fn default() -> GpioDebounceReg {
228        <crate::RegValueT<GpioDebounceReg_SPEC> as RegisterValue<_>>::new(0)
229    }
230}
231
232#[doc(hidden)]
233#[derive(Copy, Clone, Eq, PartialEq)]
234pub struct GpioIntLevelCtrlReg_SPEC;
235impl crate::sealed::RegSpec for GpioIntLevelCtrlReg_SPEC {
236    type DataType = u16;
237}
238
239#[doc = "high or low level select for GPIO interrupts"]
240pub type GpioIntLevelCtrlReg = crate::RegValueT<GpioIntLevelCtrlReg_SPEC>;
241
242impl GpioIntLevelCtrlReg {
243    #[doc = "see EDGE_LEVELn0, but for GPIO IRQ4"]
244    #[inline(always)]
245    pub fn edge_leveln4(
246        self,
247    ) -> crate::common::RegisterFieldBool<9, 1, 0, GpioIntLevelCtrlReg_SPEC, crate::common::RW>
248    {
249        crate::common::RegisterFieldBool::<9,1,0,GpioIntLevelCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
250    }
251
252    #[doc = "see EDGE_LEVELn0, but for GPIO IRQ3"]
253    #[inline(always)]
254    pub fn edge_leveln3(
255        self,
256    ) -> crate::common::RegisterFieldBool<8, 1, 0, GpioIntLevelCtrlReg_SPEC, crate::common::RW>
257    {
258        crate::common::RegisterFieldBool::<8,1,0,GpioIntLevelCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
259    }
260
261    #[doc = "see EDGE_LEVELn0, but for GPIO IRQ2"]
262    #[inline(always)]
263    pub fn edge_leveln2(
264        self,
265    ) -> crate::common::RegisterFieldBool<7, 1, 0, GpioIntLevelCtrlReg_SPEC, crate::common::RW>
266    {
267        crate::common::RegisterFieldBool::<7,1,0,GpioIntLevelCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
268    }
269
270    #[doc = "see EDGE_LEVELn0, but for GPIO IRQ1"]
271    #[inline(always)]
272    pub fn edge_leveln1(
273        self,
274    ) -> crate::common::RegisterFieldBool<6, 1, 0, GpioIntLevelCtrlReg_SPEC, crate::common::RW>
275    {
276        crate::common::RegisterFieldBool::<6,1,0,GpioIntLevelCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
277    }
278
279    #[doc = "0: do not wait for key release after interrupt was reset for GPIO IRQ0, so a new interrupt can be initiated immediately\n1: wait for key release after interrupt was reset for IRQ0"]
280    #[inline(always)]
281    pub fn edge_leveln0(
282        self,
283    ) -> crate::common::RegisterFieldBool<5, 1, 0, GpioIntLevelCtrlReg_SPEC, crate::common::RW>
284    {
285        crate::common::RegisterFieldBool::<5,1,0,GpioIntLevelCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
286    }
287
288    #[doc = "see INPUT_LEVEL0, but for GPIO IRQ4"]
289    #[inline(always)]
290    pub fn input_level4(
291        self,
292    ) -> crate::common::RegisterFieldBool<4, 1, 0, GpioIntLevelCtrlReg_SPEC, crate::common::RW>
293    {
294        crate::common::RegisterFieldBool::<4,1,0,GpioIntLevelCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
295    }
296
297    #[doc = "see INPUT_LEVEL0, but for GPIO IRQ3"]
298    #[inline(always)]
299    pub fn input_level3(
300        self,
301    ) -> crate::common::RegisterFieldBool<3, 1, 0, GpioIntLevelCtrlReg_SPEC, crate::common::RW>
302    {
303        crate::common::RegisterFieldBool::<3,1,0,GpioIntLevelCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
304    }
305
306    #[doc = "see INPUT_LEVEL0, but for GPIO IRQ2"]
307    #[inline(always)]
308    pub fn input_level2(
309        self,
310    ) -> crate::common::RegisterFieldBool<2, 1, 0, GpioIntLevelCtrlReg_SPEC, crate::common::RW>
311    {
312        crate::common::RegisterFieldBool::<2,1,0,GpioIntLevelCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
313    }
314
315    #[doc = "see INPUT_LEVEL0, but for GPIO IRQ1"]
316    #[inline(always)]
317    pub fn input_level1(
318        self,
319    ) -> crate::common::RegisterFieldBool<1, 1, 0, GpioIntLevelCtrlReg_SPEC, crate::common::RW>
320    {
321        crate::common::RegisterFieldBool::<1,1,0,GpioIntLevelCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
322    }
323
324    #[doc = "0 = selected input will generate GPIO IRQ0 if that input is high.\n1 = selected input will generate GPIO IRQ0 if that input is low."]
325    #[inline(always)]
326    pub fn input_level0(
327        self,
328    ) -> crate::common::RegisterFieldBool<0, 1, 0, GpioIntLevelCtrlReg_SPEC, crate::common::RW>
329    {
330        crate::common::RegisterFieldBool::<0,1,0,GpioIntLevelCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
331    }
332}
333impl ::core::default::Default for GpioIntLevelCtrlReg {
334    #[inline(always)]
335    fn default() -> GpioIntLevelCtrlReg {
336        <crate::RegValueT<GpioIntLevelCtrlReg_SPEC> as RegisterValue<_>>::new(0)
337    }
338}
339
340#[doc(hidden)]
341#[derive(Copy, Clone, Eq, PartialEq)]
342pub struct GpioIrq0InSelReg_SPEC;
343impl crate::sealed::RegSpec for GpioIrq0InSelReg_SPEC {
344    type DataType = u16;
345}
346
347#[doc = "GPIO interrupt selection for GPIO_IRQ0"]
348pub type GpioIrq0InSelReg = crate::RegValueT<GpioIrq0InSelReg_SPEC>;
349
350impl GpioIrq0InSelReg {
351    #[doc = "input selection that can generate a GPIO interrupt\n1: P0\\[0\\] is selected\n2: P0\\[1\\] is selected\n3: P0\\[2\\] is selected\n4: P0\\[3\\] is selected\n5: P0\\[4\\] is selected\n6: P0\\[5\\] is selected\n7: P0\\[6\\] is selected\n8: P0\\[7\\] is selected\n9: P0\\[8\\] is selected\n10: P0\\[9\\] is selected\n11: P0\\[10\\] is selected\n12: P0\\[11\\] is selected\nall others: no input selected"]
352    #[inline(always)]
353    pub fn kbrd_irq0_sel(
354        self,
355    ) -> crate::common::RegisterField<0, 0xf, 1, 0, u8, u8, GpioIrq0InSelReg_SPEC, crate::common::RW>
356    {
357        crate::common::RegisterField::<0,0xf,1,0,u8,u8,GpioIrq0InSelReg_SPEC,crate::common::RW>::from_register(self,0)
358    }
359}
360impl ::core::default::Default for GpioIrq0InSelReg {
361    #[inline(always)]
362    fn default() -> GpioIrq0InSelReg {
363        <crate::RegValueT<GpioIrq0InSelReg_SPEC> as RegisterValue<_>>::new(0)
364    }
365}
366
367#[doc(hidden)]
368#[derive(Copy, Clone, Eq, PartialEq)]
369pub struct GpioIrq1InSelReg_SPEC;
370impl crate::sealed::RegSpec for GpioIrq1InSelReg_SPEC {
371    type DataType = u16;
372}
373
374#[doc = "GPIO interrupt selection for GPIO_IRQ1"]
375pub type GpioIrq1InSelReg = crate::RegValueT<GpioIrq1InSelReg_SPEC>;
376
377impl GpioIrq1InSelReg {
378    #[doc = "see KBRD_IRQ0_SEL"]
379    #[inline(always)]
380    pub fn kbrd_irq1_sel(
381        self,
382    ) -> crate::common::RegisterField<0, 0xf, 1, 0, u8, u8, GpioIrq1InSelReg_SPEC, crate::common::RW>
383    {
384        crate::common::RegisterField::<0,0xf,1,0,u8,u8,GpioIrq1InSelReg_SPEC,crate::common::RW>::from_register(self,0)
385    }
386}
387impl ::core::default::Default for GpioIrq1InSelReg {
388    #[inline(always)]
389    fn default() -> GpioIrq1InSelReg {
390        <crate::RegValueT<GpioIrq1InSelReg_SPEC> as RegisterValue<_>>::new(0)
391    }
392}
393
394#[doc(hidden)]
395#[derive(Copy, Clone, Eq, PartialEq)]
396pub struct GpioIrq2InSelReg_SPEC;
397impl crate::sealed::RegSpec for GpioIrq2InSelReg_SPEC {
398    type DataType = u16;
399}
400
401#[doc = "GPIO interrupt selection for GPIO_IRQ2"]
402pub type GpioIrq2InSelReg = crate::RegValueT<GpioIrq2InSelReg_SPEC>;
403
404impl GpioIrq2InSelReg {
405    #[doc = "see KBRD_IRQ0_SEL"]
406    #[inline(always)]
407    pub fn kbrd_irq2_sel(
408        self,
409    ) -> crate::common::RegisterField<0, 0xf, 1, 0, u8, u8, GpioIrq2InSelReg_SPEC, crate::common::RW>
410    {
411        crate::common::RegisterField::<0,0xf,1,0,u8,u8,GpioIrq2InSelReg_SPEC,crate::common::RW>::from_register(self,0)
412    }
413}
414impl ::core::default::Default for GpioIrq2InSelReg {
415    #[inline(always)]
416    fn default() -> GpioIrq2InSelReg {
417        <crate::RegValueT<GpioIrq2InSelReg_SPEC> as RegisterValue<_>>::new(0)
418    }
419}
420
421#[doc(hidden)]
422#[derive(Copy, Clone, Eq, PartialEq)]
423pub struct GpioIrq3InSelReg_SPEC;
424impl crate::sealed::RegSpec for GpioIrq3InSelReg_SPEC {
425    type DataType = u16;
426}
427
428#[doc = "GPIO interrupt selection for GPIO_IRQ3"]
429pub type GpioIrq3InSelReg = crate::RegValueT<GpioIrq3InSelReg_SPEC>;
430
431impl GpioIrq3InSelReg {
432    #[doc = "see KBRD_IRQ0_SEL"]
433    #[inline(always)]
434    pub fn kbrd_irq3_sel(
435        self,
436    ) -> crate::common::RegisterField<0, 0xf, 1, 0, u8, u8, GpioIrq3InSelReg_SPEC, crate::common::RW>
437    {
438        crate::common::RegisterField::<0,0xf,1,0,u8,u8,GpioIrq3InSelReg_SPEC,crate::common::RW>::from_register(self,0)
439    }
440}
441impl ::core::default::Default for GpioIrq3InSelReg {
442    #[inline(always)]
443    fn default() -> GpioIrq3InSelReg {
444        <crate::RegValueT<GpioIrq3InSelReg_SPEC> as RegisterValue<_>>::new(0)
445    }
446}
447
448#[doc(hidden)]
449#[derive(Copy, Clone, Eq, PartialEq)]
450pub struct GpioIrq4InSelReg_SPEC;
451impl crate::sealed::RegSpec for GpioIrq4InSelReg_SPEC {
452    type DataType = u16;
453}
454
455#[doc = "GPIO interrupt selection for GPIO_IRQ4"]
456pub type GpioIrq4InSelReg = crate::RegValueT<GpioIrq4InSelReg_SPEC>;
457
458impl GpioIrq4InSelReg {
459    #[doc = "see KBRD_IRQ0_SEL"]
460    #[inline(always)]
461    pub fn kbrd_irq4_sel(
462        self,
463    ) -> crate::common::RegisterField<0, 0xf, 1, 0, u8, u8, GpioIrq4InSelReg_SPEC, crate::common::RW>
464    {
465        crate::common::RegisterField::<0,0xf,1,0,u8,u8,GpioIrq4InSelReg_SPEC,crate::common::RW>::from_register(self,0)
466    }
467}
468impl ::core::default::Default for GpioIrq4InSelReg {
469    #[inline(always)]
470    fn default() -> GpioIrq4InSelReg {
471        <crate::RegValueT<GpioIrq4InSelReg_SPEC> as RegisterValue<_>>::new(0)
472    }
473}
474
475#[doc(hidden)]
476#[derive(Copy, Clone, Eq, PartialEq)]
477pub struct GpioResetIrqReg_SPEC;
478impl crate::sealed::RegSpec for GpioResetIrqReg_SPEC {
479    type DataType = u16;
480}
481
482#[doc = "GPIO interrupt reset register"]
483pub type GpioResetIrqReg = crate::RegValueT<GpioResetIrqReg_SPEC>;
484
485impl GpioResetIrqReg {
486    #[doc = "writing a 1 to this bit will reset the KBRD IRQ.\nReading returns 0."]
487    #[inline(always)]
488    pub fn reset_kbrd_irq(
489        self,
490    ) -> crate::common::RegisterFieldBool<5, 1, 0, GpioResetIrqReg_SPEC, crate::common::W> {
491        crate::common::RegisterFieldBool::<5,1,0,GpioResetIrqReg_SPEC,crate::common::W>::from_register(self,0)
492    }
493
494    #[doc = "writing a 1 to this bit will reset the GPIO4 IRQ.\nReading returns 0."]
495    #[inline(always)]
496    pub fn reset_gpio4_irq(
497        self,
498    ) -> crate::common::RegisterFieldBool<4, 1, 0, GpioResetIrqReg_SPEC, crate::common::W> {
499        crate::common::RegisterFieldBool::<4,1,0,GpioResetIrqReg_SPEC,crate::common::W>::from_register(self,0)
500    }
501
502    #[doc = "writing a 1 to this bit will reset the GPIO3 IRQ.\nReading returns 0."]
503    #[inline(always)]
504    pub fn reset_gpio3_irq(
505        self,
506    ) -> crate::common::RegisterFieldBool<3, 1, 0, GpioResetIrqReg_SPEC, crate::common::W> {
507        crate::common::RegisterFieldBool::<3,1,0,GpioResetIrqReg_SPEC,crate::common::W>::from_register(self,0)
508    }
509
510    #[doc = "writing a 1 to this bit will reset the GPIO2 IRQ.\nReading returns 0."]
511    #[inline(always)]
512    pub fn reset_gpio2_irq(
513        self,
514    ) -> crate::common::RegisterFieldBool<2, 1, 0, GpioResetIrqReg_SPEC, crate::common::W> {
515        crate::common::RegisterFieldBool::<2,1,0,GpioResetIrqReg_SPEC,crate::common::W>::from_register(self,0)
516    }
517
518    #[doc = "writing a 1 to this bit will reset the GPIO1 IRQ.\nReading returns 0."]
519    #[inline(always)]
520    pub fn reset_gpio1_irq(
521        self,
522    ) -> crate::common::RegisterFieldBool<1, 1, 0, GpioResetIrqReg_SPEC, crate::common::W> {
523        crate::common::RegisterFieldBool::<1,1,0,GpioResetIrqReg_SPEC,crate::common::W>::from_register(self,0)
524    }
525
526    #[doc = "writing a 1 to this bit will reset the GPIO0 IRQ.\nReading returns 0."]
527    #[inline(always)]
528    pub fn reset_gpio0_irq(
529        self,
530    ) -> crate::common::RegisterFieldBool<0, 1, 0, GpioResetIrqReg_SPEC, crate::common::W> {
531        crate::common::RegisterFieldBool::<0,1,0,GpioResetIrqReg_SPEC,crate::common::W>::from_register(self,0)
532    }
533}
534impl ::core::default::Default for GpioResetIrqReg {
535    #[inline(always)]
536    fn default() -> GpioResetIrqReg {
537        <crate::RegValueT<GpioResetIrqReg_SPEC> as RegisterValue<_>>::new(0)
538    }
539}
540
541#[doc(hidden)]
542#[derive(Copy, Clone, Eq, PartialEq)]
543pub struct KbrdCtrlReg_SPEC;
544impl crate::sealed::RegSpec for KbrdCtrlReg_SPEC {
545    type DataType = u16;
546}
547
548#[doc = "GPIO Kbrd control register"]
549pub type KbrdCtrlReg = crate::RegValueT<KbrdCtrlReg_SPEC>;
550
551impl KbrdCtrlReg {
552    #[doc = "0 = No interrupt on key release\n1 = Interrupt also on key release (also debouncing if enabled)"]
553    #[inline(always)]
554    pub fn kbrd_rel(
555        self,
556    ) -> crate::common::RegisterFieldBool<7, 1, 0, KbrdCtrlReg_SPEC, crate::common::RW> {
557        crate::common::RegisterFieldBool::<7,1,0,KbrdCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
558    }
559
560    #[doc = "0 = enabled input will generate KBRD IRQ if that input is high.\n1 = enabled input will generate KBRD IRQ if that input is low."]
561    #[inline(always)]
562    pub fn kbrd_level(
563        self,
564    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbrdCtrlReg_SPEC, crate::common::RW> {
565        crate::common::RegisterFieldBool::<6,1,0,KbrdCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
566    }
567
568    #[doc = "While key is pressed, automatically generate repeating\nKEYB_INT after specified time unequal to 0.\nRepeat time: N*1 ms. N =1..63, N=0 disables the timer."]
569    #[inline(always)]
570    pub fn key_repeat(
571        self,
572    ) -> crate::common::RegisterField<0, 0x3f, 1, 0, u8, u8, KbrdCtrlReg_SPEC, crate::common::RW>
573    {
574        crate::common::RegisterField::<0,0x3f,1,0,u8,u8,KbrdCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
575    }
576}
577impl ::core::default::Default for KbrdCtrlReg {
578    #[inline(always)]
579    fn default() -> KbrdCtrlReg {
580        <crate::RegValueT<KbrdCtrlReg_SPEC> as RegisterValue<_>>::new(0)
581    }
582}
583
584#[doc(hidden)]
585#[derive(Copy, Clone, Eq, PartialEq)]
586pub struct KbrdIrqInSel0Reg_SPEC;
587impl crate::sealed::RegSpec for KbrdIrqInSel0Reg_SPEC {
588    type DataType = u16;
589}
590
591#[doc = "GPIO interrupt selection for KBRD_IRQ for P0"]
592pub type KbrdIrqInSel0Reg = crate::RegValueT<KbrdIrqInSel0Reg_SPEC>;
593
594impl KbrdIrqInSel0Reg {
595    #[doc = "enable P0\\[11\\] for the keyboard interrupt"]
596    #[inline(always)]
597    pub fn kbrd_p11_en(
598        self,
599    ) -> crate::common::RegisterFieldBool<11, 1, 0, KbrdIrqInSel0Reg_SPEC, crate::common::RW> {
600        crate::common::RegisterFieldBool::<11,1,0,KbrdIrqInSel0Reg_SPEC,crate::common::RW>::from_register(self,0)
601    }
602
603    #[doc = "enable P0\\[10\\] for the keyboard interrupt"]
604    #[inline(always)]
605    pub fn kbrd_p10_en(
606        self,
607    ) -> crate::common::RegisterFieldBool<10, 1, 0, KbrdIrqInSel0Reg_SPEC, crate::common::RW> {
608        crate::common::RegisterFieldBool::<10,1,0,KbrdIrqInSel0Reg_SPEC,crate::common::RW>::from_register(self,0)
609    }
610
611    #[doc = "enable P0\\[9\\] for the keyboard interrupt"]
612    #[inline(always)]
613    pub fn kbrd_p09_en(
614        self,
615    ) -> crate::common::RegisterFieldBool<9, 1, 0, KbrdIrqInSel0Reg_SPEC, crate::common::RW> {
616        crate::common::RegisterFieldBool::<9,1,0,KbrdIrqInSel0Reg_SPEC,crate::common::RW>::from_register(self,0)
617    }
618
619    #[doc = "enable P0\\[8\\] for the keyboard interrupt"]
620    #[inline(always)]
621    pub fn kbrd_p08_en(
622        self,
623    ) -> crate::common::RegisterFieldBool<8, 1, 0, KbrdIrqInSel0Reg_SPEC, crate::common::RW> {
624        crate::common::RegisterFieldBool::<8,1,0,KbrdIrqInSel0Reg_SPEC,crate::common::RW>::from_register(self,0)
625    }
626
627    #[doc = "enable P0\\[7\\] for the keyboard interrupt"]
628    #[inline(always)]
629    pub fn kbrd_p07_en(
630        self,
631    ) -> crate::common::RegisterFieldBool<7, 1, 0, KbrdIrqInSel0Reg_SPEC, crate::common::RW> {
632        crate::common::RegisterFieldBool::<7,1,0,KbrdIrqInSel0Reg_SPEC,crate::common::RW>::from_register(self,0)
633    }
634
635    #[doc = "enable P0\\[6\\] for the keyboard interrupt"]
636    #[inline(always)]
637    pub fn kbrd_p06_en(
638        self,
639    ) -> crate::common::RegisterFieldBool<6, 1, 0, KbrdIrqInSel0Reg_SPEC, crate::common::RW> {
640        crate::common::RegisterFieldBool::<6,1,0,KbrdIrqInSel0Reg_SPEC,crate::common::RW>::from_register(self,0)
641    }
642
643    #[doc = "enable P0\\[5\\] for the keyboard interrupt"]
644    #[inline(always)]
645    pub fn kbrd_p05_en(
646        self,
647    ) -> crate::common::RegisterFieldBool<5, 1, 0, KbrdIrqInSel0Reg_SPEC, crate::common::RW> {
648        crate::common::RegisterFieldBool::<5,1,0,KbrdIrqInSel0Reg_SPEC,crate::common::RW>::from_register(self,0)
649    }
650
651    #[doc = "enable P0\\[4\\] for the keyboard interrupt"]
652    #[inline(always)]
653    pub fn kbrd_p04_en(
654        self,
655    ) -> crate::common::RegisterFieldBool<4, 1, 0, KbrdIrqInSel0Reg_SPEC, crate::common::RW> {
656        crate::common::RegisterFieldBool::<4,1,0,KbrdIrqInSel0Reg_SPEC,crate::common::RW>::from_register(self,0)
657    }
658
659    #[doc = "enable P0\\[3\\] for the keyboard interrupt"]
660    #[inline(always)]
661    pub fn kbrd_p03_en(
662        self,
663    ) -> crate::common::RegisterFieldBool<3, 1, 0, KbrdIrqInSel0Reg_SPEC, crate::common::RW> {
664        crate::common::RegisterFieldBool::<3,1,0,KbrdIrqInSel0Reg_SPEC,crate::common::RW>::from_register(self,0)
665    }
666
667    #[doc = "enable P0\\[2\\] for the keyboard interrupt"]
668    #[inline(always)]
669    pub fn kbrd_p02_en(
670        self,
671    ) -> crate::common::RegisterFieldBool<2, 1, 0, KbrdIrqInSel0Reg_SPEC, crate::common::RW> {
672        crate::common::RegisterFieldBool::<2,1,0,KbrdIrqInSel0Reg_SPEC,crate::common::RW>::from_register(self,0)
673    }
674
675    #[doc = "enable P0\\[1\\] for the keyboard interrupt"]
676    #[inline(always)]
677    pub fn kbrd_p01_en(
678        self,
679    ) -> crate::common::RegisterFieldBool<1, 1, 0, KbrdIrqInSel0Reg_SPEC, crate::common::RW> {
680        crate::common::RegisterFieldBool::<1,1,0,KbrdIrqInSel0Reg_SPEC,crate::common::RW>::from_register(self,0)
681    }
682
683    #[doc = "enable P0\\[0\\] for the keyboard interrupt"]
684    #[inline(always)]
685    pub fn kbrd_p00_en(
686        self,
687    ) -> crate::common::RegisterFieldBool<0, 1, 0, KbrdIrqInSel0Reg_SPEC, crate::common::RW> {
688        crate::common::RegisterFieldBool::<0,1,0,KbrdIrqInSel0Reg_SPEC,crate::common::RW>::from_register(self,0)
689    }
690}
691impl ::core::default::Default for KbrdIrqInSel0Reg {
692    #[inline(always)]
693    fn default() -> KbrdIrqInSel0Reg {
694        <crate::RegValueT<KbrdIrqInSel0Reg_SPEC> as RegisterValue<_>>::new(0)
695    }
696}