aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embassy-nrf/src/chips/nrf54l15_app.rs161
-rw-r--r--embassy-nrf/src/gpiote.rs2
2 files changed, 124 insertions, 39 deletions
diff --git a/embassy-nrf/src/chips/nrf54l15_app.rs b/embassy-nrf/src/chips/nrf54l15_app.rs
index f58a74825..f5c9a8156 100644
--- a/embassy-nrf/src/chips/nrf54l15_app.rs
+++ b/embassy-nrf/src/chips/nrf54l15_app.rs
@@ -217,6 +217,8 @@ embassy_hal_internal::peripherals! {
217 PPI00_CH6, 217 PPI00_CH6,
218 PPI00_CH7, 218 PPI00_CH7,
219 219
220 PPI10_CH0,
221
220 PPI20_CH0, 222 PPI20_CH0,
221 PPI20_CH1, 223 PPI20_CH1,
222 PPI20_CH2, 224 PPI20_CH2,
@@ -242,6 +244,8 @@ embassy_hal_internal::peripherals! {
242 PPI00_GROUP0, 244 PPI00_GROUP0,
243 PPI00_GROUP1, 245 PPI00_GROUP1,
244 246
247 PPI10_GROUP0,
248
245 PPI20_GROUP0, 249 PPI20_GROUP0,
246 PPI20_GROUP1, 250 PPI20_GROUP1,
247 PPI20_GROUP2, 251 PPI20_GROUP2,
@@ -252,6 +256,87 @@ embassy_hal_internal::peripherals! {
252 PPI30_GROUP0, 256 PPI30_GROUP0,
253 PPI30_GROUP1, 257 PPI30_GROUP1,
254 258
259 // PPI BRIDGE channels
260 PPIB00_CH0,
261 PPIB00_CH1,
262 PPIB00_CH2,
263 PPIB00_CH3,
264 PPIB00_CH4,
265 PPIB00_CH5,
266 PPIB00_CH6,
267 PPIB00_CH7,
268
269 PPIB01_CH0,
270 PPIB01_CH1,
271 PPIB01_CH2,
272 PPIB01_CH3,
273 PPIB01_CH4,
274 PPIB01_CH5,
275 PPIB01_CH6,
276 PPIB01_CH7,
277
278 PPIB10_CH0,
279 PPIB10_CH1,
280 PPIB10_CH2,
281 PPIB10_CH3,
282 PPIB10_CH4,
283 PPIB10_CH5,
284 PPIB10_CH6,
285 PPIB10_CH7,
286
287 PPIB11_CH0,
288 PPIB11_CH1,
289 PPIB11_CH2,
290 PPIB11_CH3,
291 PPIB11_CH4,
292 PPIB11_CH5,
293 PPIB11_CH6,
294 PPIB11_CH7,
295 PPIB11_CH8,
296 PPIB11_CH9,
297 PPIB11_CH10,
298 PPIB11_CH11,
299 PPIB11_CH12,
300 PPIB11_CH13,
301 PPIB11_CH14,
302 PPIB11_CH15,
303
304 PPIB20_CH0,
305 PPIB20_CH1,
306 PPIB20_CH2,
307 PPIB20_CH3,
308 PPIB20_CH4,
309 PPIB20_CH5,
310 PPIB20_CH6,
311 PPIB20_CH7,
312
313 PPIB21_CH0,
314 PPIB21_CH1,
315 PPIB21_CH2,
316 PPIB21_CH3,
317 PPIB21_CH4,
318 PPIB21_CH5,
319 PPIB21_CH6,
320 PPIB21_CH7,
321 PPIB21_CH8,
322 PPIB21_CH9,
323 PPIB21_CH10,
324 PPIB21_CH11,
325 PPIB21_CH12,
326 PPIB21_CH13,
327 PPIB21_CH14,
328 PPIB21_CH15,
329
330 PPIB22_CH0,
331 PPIB22_CH1,
332 PPIB22_CH2,
333 PPIB22_CH3,
334
335 PPIB30_CH0,
336 PPIB30_CH1,
337 PPIB30_CH2,
338 PPIB30_CH3,
339
255 // Timers 340 // Timers
256 TIMER00, 341 TIMER00,
257 TIMER10, 342 TIMER10,
@@ -303,6 +388,9 @@ embassy_hal_internal::peripherals! {
303 P2_09, 388 P2_09,
304 P2_10, 389 P2_10,
305 390
391 // GRTC
392 GRTC,
393
306 // RTC 394 // RTC
307 RTC10, 395 RTC10,
308 RTC30, 396 RTC30,
@@ -325,15 +413,6 @@ embassy_hal_internal::peripherals! {
325 // RADIO 413 // RADIO
326 RADIO, 414 RADIO,
327 415
328 // PPI BRIDGE
329 PPIB00,
330 PPIB01,
331 PPIB10,
332 PPIB11,
333 PPIB20,
334 PPIB21,
335 PPIB22,
336 PPIB30,
337 416
338 // GPIOTE instances 417 // GPIOTE instances
339 GPIOTE20, 418 GPIOTE20,
@@ -379,13 +458,6 @@ impl_pin!(P0_03, 0, 3);
379impl_pin!(P0_04, 0, 4); 458impl_pin!(P0_04, 0, 4);
380impl_pin!(P0_05, 0, 5); 459impl_pin!(P0_05, 0, 5);
381impl_pin!(P0_06, 0, 6); 460impl_pin!(P0_06, 0, 6);
382impl_gpiote_pin!(P0_00, GPIOTE30);
383impl_gpiote_pin!(P0_01, GPIOTE30);
384impl_gpiote_pin!(P0_02, GPIOTE30);
385impl_gpiote_pin!(P0_03, GPIOTE30);
386impl_gpiote_pin!(P0_04, GPIOTE30);
387impl_gpiote_pin!(P0_05, GPIOTE30);
388impl_gpiote_pin!(P0_06, GPIOTE30);
389 461
390impl_pin!(P1_00, 1, 0); 462impl_pin!(P1_00, 1, 0);
391impl_pin!(P1_01, 1, 1); 463impl_pin!(P1_01, 1, 1);
@@ -405,24 +477,6 @@ impl_pin!(P1_14, 1, 14);
405impl_pin!(P1_15, 1, 15); 477impl_pin!(P1_15, 1, 15);
406impl_pin!(P1_16, 1, 16); 478impl_pin!(P1_16, 1, 16);
407 479
408impl_gpiote_pin!(P1_00, GPIOTE20);
409impl_gpiote_pin!(P1_01, GPIOTE20);
410impl_gpiote_pin!(P1_02, GPIOTE20);
411impl_gpiote_pin!(P1_03, GPIOTE20);
412impl_gpiote_pin!(P1_04, GPIOTE20);
413impl_gpiote_pin!(P1_05, GPIOTE20);
414impl_gpiote_pin!(P1_06, GPIOTE20);
415impl_gpiote_pin!(P1_07, GPIOTE20);
416impl_gpiote_pin!(P1_08, GPIOTE20);
417impl_gpiote_pin!(P1_09, GPIOTE20);
418impl_gpiote_pin!(P1_10, GPIOTE20);
419impl_gpiote_pin!(P1_11, GPIOTE20);
420impl_gpiote_pin!(P1_12, GPIOTE20);
421impl_gpiote_pin!(P1_13, GPIOTE20);
422impl_gpiote_pin!(P1_14, GPIOTE20);
423impl_gpiote_pin!(P1_15, GPIOTE20);
424impl_gpiote_pin!(P1_16, GPIOTE20);
425
426impl_pin!(P2_00, 2, 0); 480impl_pin!(P2_00, 2, 0);
427impl_pin!(P2_01, 2, 1); 481impl_pin!(P2_01, 2, 1);
428impl_pin!(P2_02, 2, 2); 482impl_pin!(P2_02, 2, 2);
@@ -435,6 +489,36 @@ impl_pin!(P2_08, 2, 8);
435impl_pin!(P2_09, 2, 9); 489impl_pin!(P2_09, 2, 9);
436impl_pin!(P2_10, 2, 10); 490impl_pin!(P2_10, 2, 10);
437 491
492cfg_if::cfg_if! {
493 if #[cfg(feature = "gpiote")] {
494 impl_gpiote_pin!(P0_00, GPIOTE30);
495 impl_gpiote_pin!(P0_01, GPIOTE30);
496 impl_gpiote_pin!(P0_02, GPIOTE30);
497 impl_gpiote_pin!(P0_03, GPIOTE30);
498 impl_gpiote_pin!(P0_04, GPIOTE30);
499 impl_gpiote_pin!(P0_05, GPIOTE30);
500 impl_gpiote_pin!(P0_06, GPIOTE30);
501
502 impl_gpiote_pin!(P1_00, GPIOTE20);
503 impl_gpiote_pin!(P1_01, GPIOTE20);
504 impl_gpiote_pin!(P1_02, GPIOTE20);
505 impl_gpiote_pin!(P1_03, GPIOTE20);
506 impl_gpiote_pin!(P1_04, GPIOTE20);
507 impl_gpiote_pin!(P1_05, GPIOTE20);
508 impl_gpiote_pin!(P1_06, GPIOTE20);
509 impl_gpiote_pin!(P1_07, GPIOTE20);
510 impl_gpiote_pin!(P1_08, GPIOTE20);
511 impl_gpiote_pin!(P1_09, GPIOTE20);
512 impl_gpiote_pin!(P1_10, GPIOTE20);
513 impl_gpiote_pin!(P1_11, GPIOTE20);
514 impl_gpiote_pin!(P1_12, GPIOTE20);
515 impl_gpiote_pin!(P1_13, GPIOTE20);
516 impl_gpiote_pin!(P1_14, GPIOTE20);
517 impl_gpiote_pin!(P1_15, GPIOTE20);
518 impl_gpiote_pin!(P1_16, GPIOTE20);
519 }
520}
521
438impl_rtc!(RTC10, RTC10, RTC10); 522impl_rtc!(RTC10, RTC10, RTC10);
439impl_rtc!(RTC30, RTC30, RTC30); 523impl_rtc!(RTC30, RTC30, RTC30);
440 524
@@ -454,6 +538,9 @@ impl_ppi_channel!(PPI00_CH5, DPPIC00, 5 => configurable);
454impl_ppi_channel!(PPI00_CH6, DPPIC00, 6 => configurable); 538impl_ppi_channel!(PPI00_CH6, DPPIC00, 6 => configurable);
455impl_ppi_channel!(PPI00_CH7, DPPIC00, 7 => configurable); 539impl_ppi_channel!(PPI00_CH7, DPPIC00, 7 => configurable);
456 540
541// DPPI10 channels
542impl_ppi_channel!(PPI10_CH0, DPPIC10, 0 => static);
543
457// DPPI20 channels 544// DPPI20 channels
458impl_ppi_channel!(PPI20_CH0, DPPIC20, 0 => configurable); 545impl_ppi_channel!(PPI20_CH0, DPPIC20, 0 => configurable);
459impl_ppi_channel!(PPI20_CH1, DPPIC20, 1 => configurable); 546impl_ppi_channel!(PPI20_CH1, DPPIC20, 1 => configurable);
@@ -482,6 +569,9 @@ impl_ppi_channel!(PPI30_CH3, DPPIC30, 3 => configurable);
482impl_ppi_group!(PPI00_GROUP0, DPPIC00, 0); 569impl_ppi_group!(PPI00_GROUP0, DPPIC00, 0);
483impl_ppi_group!(PPI00_GROUP1, DPPIC00, 1); 570impl_ppi_group!(PPI00_GROUP1, DPPIC00, 1);
484 571
572// DPPI10 groups
573impl_ppi_group!(PPI10_GROUP0, DPPIC10, 0);
574
485// DPPI20 groups 575// DPPI20 groups
486impl_ppi_group!(PPI20_GROUP0, DPPIC20, 0); 576impl_ppi_group!(PPI20_GROUP0, DPPIC20, 0);
487impl_ppi_group!(PPI20_GROUP1, DPPIC20, 1); 577impl_ppi_group!(PPI20_GROUP1, DPPIC20, 1);
@@ -494,9 +584,6 @@ impl_ppi_group!(PPI20_GROUP5, DPPIC20, 5);
494impl_ppi_group!(PPI30_GROUP0, DPPIC30, 0); 584impl_ppi_group!(PPI30_GROUP0, DPPIC30, 0);
495impl_ppi_group!(PPI30_GROUP1, DPPIC30, 1); 585impl_ppi_group!(PPI30_GROUP1, DPPIC30, 1);
496 586
497// impl_ppi_channel!(PPI10_CH0, pac::DPPIC10, 0 => static);
498// impl_ppi_group!(PPI10_GROUP0, pac::DPPIC10, 0);
499
500impl_timer!(TIMER00, TIMER00, TIMER00); 587impl_timer!(TIMER00, TIMER00, TIMER00);
501impl_timer!(TIMER10, TIMER10, TIMER10); 588impl_timer!(TIMER10, TIMER10, TIMER10);
502impl_timer!(TIMER20, TIMER20, TIMER20); 589impl_timer!(TIMER20, TIMER20, TIMER20);
diff --git a/embassy-nrf/src/gpiote.rs b/embassy-nrf/src/gpiote.rs
index 54afb9823..91944d8cd 100644
--- a/embassy-nrf/src/gpiote.rs
+++ b/embassy-nrf/src/gpiote.rs
@@ -713,9 +713,7 @@ cfg_if::cfg_if! {
713 713
714 macro_rules! impl_gpiote_pin { 714 macro_rules! impl_gpiote_pin {
715 ($type:ident, $inst:ident) => { 715 ($type:ident, $inst:ident) => {
716 #[cfg(feature = "gpiote")]
717 impl crate::gpiote::SealedGpiotePin for peripherals::$type {} 716 impl crate::gpiote::SealedGpiotePin for peripherals::$type {}
718 #[cfg(feature = "gpiote")]
719 impl crate::gpiote::GpiotePin for peripherals::$type { 717 impl crate::gpiote::GpiotePin for peripherals::$type {
720 type Instance = peripherals::$inst; 718 type Instance = peripherals::$inst;
721 } 719 }