rp2040_pac/io_bank0/gpio/
gpio_ctrl.rs
1#[doc = "Register `GPIO_CTRL` reader"]
2pub type R = crate::R<GPIO_CTRL_SPEC>;
3#[doc = "Register `GPIO_CTRL` writer"]
4pub type W = crate::W<GPIO_CTRL_SPEC>;
5#[doc = "Field `FUNCSEL` reader - 0-31 -> selects pin function according to the GPIO table. Not all options are valid for all GPIO pins."]
6pub type FUNCSEL_R = crate::FieldReader<FUNCSEL_A>;
7#[doc = "0-31 -> selects pin function according to the GPIO table. Not all options are valid for all GPIO pins.
8
9Value on reset: 31"]
10#[derive(Clone, Copy, Debug, PartialEq, Eq)]
11#[repr(u8)]
12pub enum FUNCSEL_A {
13 #[doc = "0: Connect to JTAG peripheral"]
14 JTAG = 0,
15 #[doc = "1: Connect to matching SPI peripheral"]
16 SPI = 1,
17 #[doc = "2: Connect to matching UART peripheral"]
18 UART = 2,
19 #[doc = "3: Connect to matching I2C peripheral"]
20 I2C = 3,
21 #[doc = "4: Connect to matching PWM peripheral"]
22 PWM = 4,
23 #[doc = "5: Use as a GPIO pin (connect to SIO peripheral)"]
24 SIO = 5,
25 #[doc = "6: Connect to PIO0 peripheral"]
26 PIO0 = 6,
27 #[doc = "7: Connect to PIO1 peripheral"]
28 PIO1 = 7,
29 #[doc = "8: Connect to Clock peripheral"]
30 CLOCK = 8,
31 #[doc = "9: Connect to USB peripheral"]
32 USB = 9,
33 #[doc = "31: Connect to nothing"]
34 NULL = 31,
35}
36impl From<FUNCSEL_A> for u8 {
37 #[inline(always)]
38 fn from(variant: FUNCSEL_A) -> Self {
39 variant as _
40 }
41}
42impl crate::FieldSpec for FUNCSEL_A {
43 type Ux = u8;
44}
45impl FUNCSEL_R {
46 #[doc = "Get enumerated values variant"]
47 #[inline(always)]
48 pub const fn variant(&self) -> Option<FUNCSEL_A> {
49 match self.bits {
50 0 => Some(FUNCSEL_A::JTAG),
51 1 => Some(FUNCSEL_A::SPI),
52 2 => Some(FUNCSEL_A::UART),
53 3 => Some(FUNCSEL_A::I2C),
54 4 => Some(FUNCSEL_A::PWM),
55 5 => Some(FUNCSEL_A::SIO),
56 6 => Some(FUNCSEL_A::PIO0),
57 7 => Some(FUNCSEL_A::PIO1),
58 8 => Some(FUNCSEL_A::CLOCK),
59 9 => Some(FUNCSEL_A::USB),
60 31 => Some(FUNCSEL_A::NULL),
61 _ => None,
62 }
63 }
64 #[doc = "Connect to JTAG peripheral"]
65 #[inline(always)]
66 pub fn is_jtag(&self) -> bool {
67 *self == FUNCSEL_A::JTAG
68 }
69 #[doc = "Connect to matching SPI peripheral"]
70 #[inline(always)]
71 pub fn is_spi(&self) -> bool {
72 *self == FUNCSEL_A::SPI
73 }
74 #[doc = "Connect to matching UART peripheral"]
75 #[inline(always)]
76 pub fn is_uart(&self) -> bool {
77 *self == FUNCSEL_A::UART
78 }
79 #[doc = "Connect to matching I2C peripheral"]
80 #[inline(always)]
81 pub fn is_i2c(&self) -> bool {
82 *self == FUNCSEL_A::I2C
83 }
84 #[doc = "Connect to matching PWM peripheral"]
85 #[inline(always)]
86 pub fn is_pwm(&self) -> bool {
87 *self == FUNCSEL_A::PWM
88 }
89 #[doc = "Use as a GPIO pin (connect to SIO peripheral)"]
90 #[inline(always)]
91 pub fn is_sio(&self) -> bool {
92 *self == FUNCSEL_A::SIO
93 }
94 #[doc = "Connect to PIO0 peripheral"]
95 #[inline(always)]
96 pub fn is_pio0(&self) -> bool {
97 *self == FUNCSEL_A::PIO0
98 }
99 #[doc = "Connect to PIO1 peripheral"]
100 #[inline(always)]
101 pub fn is_pio1(&self) -> bool {
102 *self == FUNCSEL_A::PIO1
103 }
104 #[doc = "Connect to Clock peripheral"]
105 #[inline(always)]
106 pub fn is_clock(&self) -> bool {
107 *self == FUNCSEL_A::CLOCK
108 }
109 #[doc = "Connect to USB peripheral"]
110 #[inline(always)]
111 pub fn is_usb(&self) -> bool {
112 *self == FUNCSEL_A::USB
113 }
114 #[doc = "Connect to nothing"]
115 #[inline(always)]
116 pub fn is_null(&self) -> bool {
117 *self == FUNCSEL_A::NULL
118 }
119}
120#[doc = "Field `FUNCSEL` writer - 0-31 -> selects pin function according to the GPIO table. Not all options are valid for all GPIO pins."]
121pub type FUNCSEL_W<'a, REG> = crate::FieldWriter<'a, REG, 5, FUNCSEL_A>;
122impl<'a, REG> FUNCSEL_W<'a, REG>
123where
124 REG: crate::Writable + crate::RegisterSpec,
125 REG::Ux: From<u8>,
126{
127 #[doc = "Connect to JTAG peripheral"]
128 #[inline(always)]
129 pub fn jtag(self) -> &'a mut crate::W<REG> {
130 self.variant(FUNCSEL_A::JTAG)
131 }
132 #[doc = "Connect to matching SPI peripheral"]
133 #[inline(always)]
134 pub fn spi(self) -> &'a mut crate::W<REG> {
135 self.variant(FUNCSEL_A::SPI)
136 }
137 #[doc = "Connect to matching UART peripheral"]
138 #[inline(always)]
139 pub fn uart(self) -> &'a mut crate::W<REG> {
140 self.variant(FUNCSEL_A::UART)
141 }
142 #[doc = "Connect to matching I2C peripheral"]
143 #[inline(always)]
144 pub fn i2c(self) -> &'a mut crate::W<REG> {
145 self.variant(FUNCSEL_A::I2C)
146 }
147 #[doc = "Connect to matching PWM peripheral"]
148 #[inline(always)]
149 pub fn pwm(self) -> &'a mut crate::W<REG> {
150 self.variant(FUNCSEL_A::PWM)
151 }
152 #[doc = "Use as a GPIO pin (connect to SIO peripheral)"]
153 #[inline(always)]
154 pub fn sio(self) -> &'a mut crate::W<REG> {
155 self.variant(FUNCSEL_A::SIO)
156 }
157 #[doc = "Connect to PIO0 peripheral"]
158 #[inline(always)]
159 pub fn pio0(self) -> &'a mut crate::W<REG> {
160 self.variant(FUNCSEL_A::PIO0)
161 }
162 #[doc = "Connect to PIO1 peripheral"]
163 #[inline(always)]
164 pub fn pio1(self) -> &'a mut crate::W<REG> {
165 self.variant(FUNCSEL_A::PIO1)
166 }
167 #[doc = "Connect to Clock peripheral"]
168 #[inline(always)]
169 pub fn clock(self) -> &'a mut crate::W<REG> {
170 self.variant(FUNCSEL_A::CLOCK)
171 }
172 #[doc = "Connect to USB peripheral"]
173 #[inline(always)]
174 pub fn usb(self) -> &'a mut crate::W<REG> {
175 self.variant(FUNCSEL_A::USB)
176 }
177 #[doc = "Connect to nothing"]
178 #[inline(always)]
179 pub fn null(self) -> &'a mut crate::W<REG> {
180 self.variant(FUNCSEL_A::NULL)
181 }
182}
183#[doc = "Field `OUTOVER` reader - "]
184pub type OUTOVER_R = crate::FieldReader<OUTOVER_A>;
185#[doc = "
186
187Value on reset: 0"]
188#[derive(Clone, Copy, Debug, PartialEq, Eq)]
189#[repr(u8)]
190pub enum OUTOVER_A {
191 #[doc = "0: drive output from peripheral signal selected by funcsel"]
192 NORMAL = 0,
193 #[doc = "1: drive output from inverse of peripheral signal selected by funcsel"]
194 INVERT = 1,
195 #[doc = "2: drive output low"]
196 LOW = 2,
197 #[doc = "3: drive output high"]
198 HIGH = 3,
199}
200impl From<OUTOVER_A> for u8 {
201 #[inline(always)]
202 fn from(variant: OUTOVER_A) -> Self {
203 variant as _
204 }
205}
206impl crate::FieldSpec for OUTOVER_A {
207 type Ux = u8;
208}
209impl OUTOVER_R {
210 #[doc = "Get enumerated values variant"]
211 #[inline(always)]
212 pub const fn variant(&self) -> OUTOVER_A {
213 match self.bits {
214 0 => OUTOVER_A::NORMAL,
215 1 => OUTOVER_A::INVERT,
216 2 => OUTOVER_A::LOW,
217 3 => OUTOVER_A::HIGH,
218 _ => unreachable!(),
219 }
220 }
221 #[doc = "drive output from peripheral signal selected by funcsel"]
222 #[inline(always)]
223 pub fn is_normal(&self) -> bool {
224 *self == OUTOVER_A::NORMAL
225 }
226 #[doc = "drive output from inverse of peripheral signal selected by funcsel"]
227 #[inline(always)]
228 pub fn is_invert(&self) -> bool {
229 *self == OUTOVER_A::INVERT
230 }
231 #[doc = "drive output low"]
232 #[inline(always)]
233 pub fn is_low(&self) -> bool {
234 *self == OUTOVER_A::LOW
235 }
236 #[doc = "drive output high"]
237 #[inline(always)]
238 pub fn is_high(&self) -> bool {
239 *self == OUTOVER_A::HIGH
240 }
241}
242#[doc = "Field `OUTOVER` writer - "]
243pub type OUTOVER_W<'a, REG> = crate::FieldWriterSafe<'a, REG, 2, OUTOVER_A>;
244impl<'a, REG> OUTOVER_W<'a, REG>
245where
246 REG: crate::Writable + crate::RegisterSpec,
247 REG::Ux: From<u8>,
248{
249 #[doc = "drive output from peripheral signal selected by funcsel"]
250 #[inline(always)]
251 pub fn normal(self) -> &'a mut crate::W<REG> {
252 self.variant(OUTOVER_A::NORMAL)
253 }
254 #[doc = "drive output from inverse of peripheral signal selected by funcsel"]
255 #[inline(always)]
256 pub fn invert(self) -> &'a mut crate::W<REG> {
257 self.variant(OUTOVER_A::INVERT)
258 }
259 #[doc = "drive output low"]
260 #[inline(always)]
261 pub fn low(self) -> &'a mut crate::W<REG> {
262 self.variant(OUTOVER_A::LOW)
263 }
264 #[doc = "drive output high"]
265 #[inline(always)]
266 pub fn high(self) -> &'a mut crate::W<REG> {
267 self.variant(OUTOVER_A::HIGH)
268 }
269}
270#[doc = "Field `OEOVER` reader - "]
271pub type OEOVER_R = crate::FieldReader<OEOVER_A>;
272#[doc = "
273
274Value on reset: 0"]
275#[derive(Clone, Copy, Debug, PartialEq, Eq)]
276#[repr(u8)]
277pub enum OEOVER_A {
278 #[doc = "0: drive output enable from peripheral signal selected by funcsel"]
279 NORMAL = 0,
280 #[doc = "1: drive output enable from inverse of peripheral signal selected by funcsel"]
281 INVERT = 1,
282 #[doc = "2: disable output"]
283 DISABLE = 2,
284 #[doc = "3: enable output"]
285 ENABLE = 3,
286}
287impl From<OEOVER_A> for u8 {
288 #[inline(always)]
289 fn from(variant: OEOVER_A) -> Self {
290 variant as _
291 }
292}
293impl crate::FieldSpec for OEOVER_A {
294 type Ux = u8;
295}
296impl OEOVER_R {
297 #[doc = "Get enumerated values variant"]
298 #[inline(always)]
299 pub const fn variant(&self) -> OEOVER_A {
300 match self.bits {
301 0 => OEOVER_A::NORMAL,
302 1 => OEOVER_A::INVERT,
303 2 => OEOVER_A::DISABLE,
304 3 => OEOVER_A::ENABLE,
305 _ => unreachable!(),
306 }
307 }
308 #[doc = "drive output enable from peripheral signal selected by funcsel"]
309 #[inline(always)]
310 pub fn is_normal(&self) -> bool {
311 *self == OEOVER_A::NORMAL
312 }
313 #[doc = "drive output enable from inverse of peripheral signal selected by funcsel"]
314 #[inline(always)]
315 pub fn is_invert(&self) -> bool {
316 *self == OEOVER_A::INVERT
317 }
318 #[doc = "disable output"]
319 #[inline(always)]
320 pub fn is_disable(&self) -> bool {
321 *self == OEOVER_A::DISABLE
322 }
323 #[doc = "enable output"]
324 #[inline(always)]
325 pub fn is_enable(&self) -> bool {
326 *self == OEOVER_A::ENABLE
327 }
328}
329#[doc = "Field `OEOVER` writer - "]
330pub type OEOVER_W<'a, REG> = crate::FieldWriterSafe<'a, REG, 2, OEOVER_A>;
331impl<'a, REG> OEOVER_W<'a, REG>
332where
333 REG: crate::Writable + crate::RegisterSpec,
334 REG::Ux: From<u8>,
335{
336 #[doc = "drive output enable from peripheral signal selected by funcsel"]
337 #[inline(always)]
338 pub fn normal(self) -> &'a mut crate::W<REG> {
339 self.variant(OEOVER_A::NORMAL)
340 }
341 #[doc = "drive output enable from inverse of peripheral signal selected by funcsel"]
342 #[inline(always)]
343 pub fn invert(self) -> &'a mut crate::W<REG> {
344 self.variant(OEOVER_A::INVERT)
345 }
346 #[doc = "disable output"]
347 #[inline(always)]
348 pub fn disable(self) -> &'a mut crate::W<REG> {
349 self.variant(OEOVER_A::DISABLE)
350 }
351 #[doc = "enable output"]
352 #[inline(always)]
353 pub fn enable(self) -> &'a mut crate::W<REG> {
354 self.variant(OEOVER_A::ENABLE)
355 }
356}
357#[doc = "Field `INOVER` reader - "]
358pub type INOVER_R = crate::FieldReader<INOVER_A>;
359#[doc = "
360
361Value on reset: 0"]
362#[derive(Clone, Copy, Debug, PartialEq, Eq)]
363#[repr(u8)]
364pub enum INOVER_A {
365 #[doc = "0: don't invert the peri input"]
366 NORMAL = 0,
367 #[doc = "1: invert the peri input"]
368 INVERT = 1,
369 #[doc = "2: drive peri input low"]
370 LOW = 2,
371 #[doc = "3: drive peri input high"]
372 HIGH = 3,
373}
374impl From<INOVER_A> for u8 {
375 #[inline(always)]
376 fn from(variant: INOVER_A) -> Self {
377 variant as _
378 }
379}
380impl crate::FieldSpec for INOVER_A {
381 type Ux = u8;
382}
383impl INOVER_R {
384 #[doc = "Get enumerated values variant"]
385 #[inline(always)]
386 pub const fn variant(&self) -> INOVER_A {
387 match self.bits {
388 0 => INOVER_A::NORMAL,
389 1 => INOVER_A::INVERT,
390 2 => INOVER_A::LOW,
391 3 => INOVER_A::HIGH,
392 _ => unreachable!(),
393 }
394 }
395 #[doc = "don't invert the peri input"]
396 #[inline(always)]
397 pub fn is_normal(&self) -> bool {
398 *self == INOVER_A::NORMAL
399 }
400 #[doc = "invert the peri input"]
401 #[inline(always)]
402 pub fn is_invert(&self) -> bool {
403 *self == INOVER_A::INVERT
404 }
405 #[doc = "drive peri input low"]
406 #[inline(always)]
407 pub fn is_low(&self) -> bool {
408 *self == INOVER_A::LOW
409 }
410 #[doc = "drive peri input high"]
411 #[inline(always)]
412 pub fn is_high(&self) -> bool {
413 *self == INOVER_A::HIGH
414 }
415}
416#[doc = "Field `INOVER` writer - "]
417pub type INOVER_W<'a, REG> = crate::FieldWriterSafe<'a, REG, 2, INOVER_A>;
418impl<'a, REG> INOVER_W<'a, REG>
419where
420 REG: crate::Writable + crate::RegisterSpec,
421 REG::Ux: From<u8>,
422{
423 #[doc = "don't invert the peri input"]
424 #[inline(always)]
425 pub fn normal(self) -> &'a mut crate::W<REG> {
426 self.variant(INOVER_A::NORMAL)
427 }
428 #[doc = "invert the peri input"]
429 #[inline(always)]
430 pub fn invert(self) -> &'a mut crate::W<REG> {
431 self.variant(INOVER_A::INVERT)
432 }
433 #[doc = "drive peri input low"]
434 #[inline(always)]
435 pub fn low(self) -> &'a mut crate::W<REG> {
436 self.variant(INOVER_A::LOW)
437 }
438 #[doc = "drive peri input high"]
439 #[inline(always)]
440 pub fn high(self) -> &'a mut crate::W<REG> {
441 self.variant(INOVER_A::HIGH)
442 }
443}
444#[doc = "Field `IRQOVER` reader - "]
445pub type IRQOVER_R = crate::FieldReader<IRQOVER_A>;
446#[doc = "
447
448Value on reset: 0"]
449#[derive(Clone, Copy, Debug, PartialEq, Eq)]
450#[repr(u8)]
451pub enum IRQOVER_A {
452 #[doc = "0: don't invert the interrupt"]
453 NORMAL = 0,
454 #[doc = "1: invert the interrupt"]
455 INVERT = 1,
456 #[doc = "2: drive interrupt low"]
457 LOW = 2,
458 #[doc = "3: drive interrupt high"]
459 HIGH = 3,
460}
461impl From<IRQOVER_A> for u8 {
462 #[inline(always)]
463 fn from(variant: IRQOVER_A) -> Self {
464 variant as _
465 }
466}
467impl crate::FieldSpec for IRQOVER_A {
468 type Ux = u8;
469}
470impl IRQOVER_R {
471 #[doc = "Get enumerated values variant"]
472 #[inline(always)]
473 pub const fn variant(&self) -> IRQOVER_A {
474 match self.bits {
475 0 => IRQOVER_A::NORMAL,
476 1 => IRQOVER_A::INVERT,
477 2 => IRQOVER_A::LOW,
478 3 => IRQOVER_A::HIGH,
479 _ => unreachable!(),
480 }
481 }
482 #[doc = "don't invert the interrupt"]
483 #[inline(always)]
484 pub fn is_normal(&self) -> bool {
485 *self == IRQOVER_A::NORMAL
486 }
487 #[doc = "invert the interrupt"]
488 #[inline(always)]
489 pub fn is_invert(&self) -> bool {
490 *self == IRQOVER_A::INVERT
491 }
492 #[doc = "drive interrupt low"]
493 #[inline(always)]
494 pub fn is_low(&self) -> bool {
495 *self == IRQOVER_A::LOW
496 }
497 #[doc = "drive interrupt high"]
498 #[inline(always)]
499 pub fn is_high(&self) -> bool {
500 *self == IRQOVER_A::HIGH
501 }
502}
503#[doc = "Field `IRQOVER` writer - "]
504pub type IRQOVER_W<'a, REG> = crate::FieldWriterSafe<'a, REG, 2, IRQOVER_A>;
505impl<'a, REG> IRQOVER_W<'a, REG>
506where
507 REG: crate::Writable + crate::RegisterSpec,
508 REG::Ux: From<u8>,
509{
510 #[doc = "don't invert the interrupt"]
511 #[inline(always)]
512 pub fn normal(self) -> &'a mut crate::W<REG> {
513 self.variant(IRQOVER_A::NORMAL)
514 }
515 #[doc = "invert the interrupt"]
516 #[inline(always)]
517 pub fn invert(self) -> &'a mut crate::W<REG> {
518 self.variant(IRQOVER_A::INVERT)
519 }
520 #[doc = "drive interrupt low"]
521 #[inline(always)]
522 pub fn low(self) -> &'a mut crate::W<REG> {
523 self.variant(IRQOVER_A::LOW)
524 }
525 #[doc = "drive interrupt high"]
526 #[inline(always)]
527 pub fn high(self) -> &'a mut crate::W<REG> {
528 self.variant(IRQOVER_A::HIGH)
529 }
530}
531impl R {
532 #[doc = "Bits 0:4 - 0-31 -> selects pin function according to the GPIO table. Not all options are valid for all GPIO pins."]
533 #[inline(always)]
534 pub fn funcsel(&self) -> FUNCSEL_R {
535 FUNCSEL_R::new((self.bits & 0x1f) as u8)
536 }
537 #[doc = "Bits 8:9"]
538 #[inline(always)]
539 pub fn outover(&self) -> OUTOVER_R {
540 OUTOVER_R::new(((self.bits >> 8) & 3) as u8)
541 }
542 #[doc = "Bits 12:13"]
543 #[inline(always)]
544 pub fn oeover(&self) -> OEOVER_R {
545 OEOVER_R::new(((self.bits >> 12) & 3) as u8)
546 }
547 #[doc = "Bits 16:17"]
548 #[inline(always)]
549 pub fn inover(&self) -> INOVER_R {
550 INOVER_R::new(((self.bits >> 16) & 3) as u8)
551 }
552 #[doc = "Bits 28:29"]
553 #[inline(always)]
554 pub fn irqover(&self) -> IRQOVER_R {
555 IRQOVER_R::new(((self.bits >> 28) & 3) as u8)
556 }
557}
558impl W {
559 #[doc = "Bits 0:4 - 0-31 -> selects pin function according to the GPIO table. Not all options are valid for all GPIO pins."]
560 #[inline(always)]
561 #[must_use]
562 pub fn funcsel(&mut self) -> FUNCSEL_W<GPIO_CTRL_SPEC> {
563 FUNCSEL_W::new(self, 0)
564 }
565 #[doc = "Bits 8:9"]
566 #[inline(always)]
567 #[must_use]
568 pub fn outover(&mut self) -> OUTOVER_W<GPIO_CTRL_SPEC> {
569 OUTOVER_W::new(self, 8)
570 }
571 #[doc = "Bits 12:13"]
572 #[inline(always)]
573 #[must_use]
574 pub fn oeover(&mut self) -> OEOVER_W<GPIO_CTRL_SPEC> {
575 OEOVER_W::new(self, 12)
576 }
577 #[doc = "Bits 16:17"]
578 #[inline(always)]
579 #[must_use]
580 pub fn inover(&mut self) -> INOVER_W<GPIO_CTRL_SPEC> {
581 INOVER_W::new(self, 16)
582 }
583 #[doc = "Bits 28:29"]
584 #[inline(always)]
585 #[must_use]
586 pub fn irqover(&mut self) -> IRQOVER_W<GPIO_CTRL_SPEC> {
587 IRQOVER_W::new(self, 28)
588 }
589 #[doc = r" Writes raw bits to the register."]
590 #[doc = r""]
591 #[doc = r" # Safety"]
592 #[doc = r""]
593 #[doc = r" Passing incorrect value can cause undefined behaviour. See reference manual"]
594 #[inline(always)]
595 pub unsafe fn bits(&mut self, bits: u32) -> &mut Self {
596 self.bits = bits;
597 self
598 }
599}
600#[doc = "GPIO control including function select and overrides.
601
602You can [`read`](crate::generic::Reg::read) this register and get [`gpio_ctrl::R`](R). You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`gpio_ctrl::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
603pub struct GPIO_CTRL_SPEC;
604impl crate::RegisterSpec for GPIO_CTRL_SPEC {
605 type Ux = u32;
606}
607#[doc = "`read()` method returns [`gpio_ctrl::R`](R) reader structure"]
608impl crate::Readable for GPIO_CTRL_SPEC {}
609#[doc = "`write(|w| ..)` method takes [`gpio_ctrl::W`](W) writer structure"]
610impl crate::Writable for GPIO_CTRL_SPEC {
611 const ZERO_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
612 const ONE_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
613}
614#[doc = "`reset()` method sets GPIO_CTRL to value 0x1f"]
615impl crate::Resettable for GPIO_CTRL_SPEC {
616 const RESET_VALUE: u32 = 0x1f;
617}