diff options
Diffstat (limited to 'embassy-mcxa/src/gpio.rs')
| -rw-r--r-- | embassy-mcxa/src/gpio.rs | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/embassy-mcxa/src/gpio.rs b/embassy-mcxa/src/gpio.rs index 65f8df985..29d66656d 100644 --- a/embassy-mcxa/src/gpio.rs +++ b/embassy-mcxa/src/gpio.rs | |||
| @@ -81,7 +81,7 @@ fn GPIO4() { | |||
| 81 | irq_handler(4, crate::pac::Gpio4::ptr()); | 81 | irq_handler(4, crate::pac::Gpio4::ptr()); |
| 82 | } | 82 | } |
| 83 | 83 | ||
| 84 | pub(crate) unsafe fn init() { | 84 | pub(crate) unsafe fn interrupt_init() { |
| 85 | use embassy_hal_internal::interrupt::InterruptExt; | 85 | use embassy_hal_internal::interrupt::InterruptExt; |
| 86 | 86 | ||
| 87 | crate::pac::interrupt::GPIO0.enable(); | 87 | crate::pac::interrupt::GPIO0.enable(); |
| @@ -320,8 +320,12 @@ impl GpioPin for AnyPin {} | |||
| 320 | 320 | ||
| 321 | macro_rules! impl_pin { | 321 | macro_rules! impl_pin { |
| 322 | ($peri:ident, $port:expr, $pin:expr, $block:ident) => { | 322 | ($peri:ident, $port:expr, $pin:expr, $block:ident) => { |
| 323 | impl_pin!(crate::peripherals, $peri, $port, $pin, $block); | ||
| 324 | }; | ||
| 325 | |||
| 326 | ($perip:path, $peri:ident, $port:expr, $pin:expr, $block:ident) => { | ||
| 323 | paste! { | 327 | paste! { |
| 324 | impl SealedPin for crate::peripherals::$peri { | 328 | impl SealedPin for $perip::$peri { |
| 325 | fn pin_port(&self) -> usize { | 329 | fn pin_port(&self) -> usize { |
| 326 | $port * 32 + $pin | 330 | $port * 32 + $pin |
| 327 | } | 331 | } |
| @@ -372,15 +376,15 @@ macro_rules! impl_pin { | |||
| 372 | } | 376 | } |
| 373 | } | 377 | } |
| 374 | 378 | ||
| 375 | impl GpioPin for crate::peripherals::$peri {} | 379 | impl GpioPin for $perip::$peri {} |
| 376 | 380 | ||
| 377 | impl From<crate::peripherals::$peri> for AnyPin { | 381 | impl From<$perip::$peri> for AnyPin { |
| 378 | fn from(value: crate::peripherals::$peri) -> Self { | 382 | fn from(value: $perip::$peri) -> Self { |
| 379 | value.degrade() | 383 | value.degrade() |
| 380 | } | 384 | } |
| 381 | } | 385 | } |
| 382 | 386 | ||
| 383 | impl crate::peripherals::$peri { | 387 | impl $perip::$peri { |
| 384 | /// Convenience helper to obtain a type-erased handle to this pin. | 388 | /// Convenience helper to obtain a type-erased handle to this pin. |
| 385 | pub fn degrade(&self) -> AnyPin { | 389 | pub fn degrade(&self) -> AnyPin { |
| 386 | AnyPin::new(self.port(), self.pin(), self.gpio(), self.port_reg(), self.pcr_reg()) | 390 | AnyPin::new(self.port(), self.pin(), self.gpio(), self.port_reg(), self.pcr_reg()) |
| @@ -453,8 +457,8 @@ impl_pin!(P1_26, 1, 26, Gpio1); | |||
| 453 | impl_pin!(P1_27, 1, 27, Gpio1); | 457 | impl_pin!(P1_27, 1, 27, Gpio1); |
| 454 | impl_pin!(P1_28, 1, 28, Gpio1); | 458 | impl_pin!(P1_28, 1, 28, Gpio1); |
| 455 | impl_pin!(P1_29, 1, 29, Gpio1); | 459 | impl_pin!(P1_29, 1, 29, Gpio1); |
| 456 | impl_pin!(P1_30, 1, 30, Gpio1); | 460 | impl_pin!(crate::internal_peripherals, P1_30, 1, 30, Gpio1); |
| 457 | impl_pin!(P1_31, 1, 31, Gpio1); | 461 | impl_pin!(crate::internal_peripherals, P1_31, 1, 31, Gpio1); |
| 458 | 462 | ||
| 459 | impl_pin!(P2_0, 2, 0, Gpio2); | 463 | impl_pin!(P2_0, 2, 0, Gpio2); |
| 460 | impl_pin!(P2_1, 2, 1, Gpio2); | 464 | impl_pin!(P2_1, 2, 1, Gpio2); |
