aboutsummaryrefslogtreecommitdiff
path: root/embassy-nrf/src/chips/nrf9160.rs
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2023-06-08 16:08:40 +0200
committerDario Nieuwenhuis <[email protected]>2023-06-08 18:00:48 +0200
commit921780e6bfb9bcb2cd087b8aa8b094d792c99fa2 (patch)
treebd21fba9800471b860ca44e05567588dcc1afef7 /embassy-nrf/src/chips/nrf9160.rs
parent87ad66f2b4a5bfd36dfc8d8aad5492e9e3f915e6 (diff)
Make interrupt module more standard.
- Move typelevel interrupts to a special-purpose mod: `embassy_xx::interrupt::typelevel`. - Reexport the PAC interrupt enum in `embassy_xx::interrupt`. This has a few advantages: - The `embassy_xx::interrupt` module is now more "standard". - It works with `cortex-m` functions for manipulating interrupts, for example. - It works with RTIC. - the interrupt enum allows holding value that can be "any interrupt at runtime", this can't be done with typelevel irqs. - When "const-generics on enums" is stable, we can remove the typelevel interrupts without disruptive changes to `embassy_xx::interrupt`.
Diffstat (limited to 'embassy-nrf/src/chips/nrf9160.rs')
-rw-r--r--embassy-nrf/src/chips/nrf9160.rs70
1 files changed, 33 insertions, 37 deletions
diff --git a/embassy-nrf/src/chips/nrf9160.rs b/embassy-nrf/src/chips/nrf9160.rs
index d2b45114f..b6ae78bbe 100644
--- a/embassy-nrf/src/chips/nrf9160.rs
+++ b/embassy-nrf/src/chips/nrf9160.rs
@@ -366,40 +366,36 @@ impl_saadc_input!(P0_18, ANALOG_INPUT5);
366impl_saadc_input!(P0_19, ANALOG_INPUT6); 366impl_saadc_input!(P0_19, ANALOG_INPUT6);
367impl_saadc_input!(P0_20, ANALOG_INPUT7); 367impl_saadc_input!(P0_20, ANALOG_INPUT7);
368 368
369pub mod irqs { 369embassy_cortex_m::interrupt_mod!(
370 use embassy_cortex_m::interrupt::_export::declare; 370 SPU,
371 371 CLOCK_POWER,
372 use crate::pac::Interrupt as InterruptEnum; 372 UARTE0_SPIM0_SPIS0_TWIM0_TWIS0,
373 373 UARTE1_SPIM1_SPIS1_TWIM1_TWIS1,
374 declare!(SPU); 374 UARTE2_SPIM2_SPIS2_TWIM2_TWIS2,
375 declare!(CLOCK_POWER); 375 UARTE3_SPIM3_SPIS3_TWIM3_TWIS3,
376 declare!(UARTE0_SPIM0_SPIS0_TWIM0_TWIS0); 376 GPIOTE0,
377 declare!(UARTE1_SPIM1_SPIS1_TWIM1_TWIS1); 377 SAADC,
378 declare!(UARTE2_SPIM2_SPIS2_TWIM2_TWIS2); 378 TIMER0,
379 declare!(UARTE3_SPIM3_SPIS3_TWIM3_TWIS3); 379 TIMER1,
380 declare!(GPIOTE0); 380 TIMER2,
381 declare!(SAADC); 381 RTC0,
382 declare!(TIMER0); 382 RTC1,
383 declare!(TIMER1); 383 WDT,
384 declare!(TIMER2); 384 EGU0,
385 declare!(RTC0); 385 EGU1,
386 declare!(RTC1); 386 EGU2,
387 declare!(WDT); 387 EGU3,
388 declare!(EGU0); 388 EGU4,
389 declare!(EGU1); 389 EGU5,
390 declare!(EGU2); 390 PWM0,
391 declare!(EGU3); 391 PWM1,
392 declare!(EGU4); 392 PWM2,
393 declare!(EGU5); 393 PDM,
394 declare!(PWM0); 394 PWM3,
395 declare!(PWM1); 395 I2S,
396 declare!(PWM2); 396 IPC,
397 declare!(PDM); 397 FPU,
398 declare!(PWM3); 398 GPIOTE1,
399 declare!(I2S); 399 KMU,
400 declare!(IPC); 400 CRYPTOCELL,
401 declare!(FPU); 401);
402 declare!(GPIOTE1);
403 declare!(KMU);
404 declare!(CRYPTOCELL);
405}