1#![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}