diff options
| author | Raul Alimbekov <[email protected]> | 2025-12-16 09:05:22 +0300 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-12-16 09:05:22 +0300 |
| commit | c9a04b4b732b7a3b696eb8223664c1a7942b1875 (patch) | |
| tree | 6dbe5c02e66eed8d8762f13f95afd24f8db2b38c /embassy-nrf/src/chips/nrf54l05_app.rs | |
| parent | cde24a3ef1117653ba5ed4184102b33f745782fb (diff) | |
| parent | 5ae6e060ec1c90561719aabdc29d5b6e7b8b0a82 (diff) | |
Merge branch 'main' into main
Diffstat (limited to 'embassy-nrf/src/chips/nrf54l05_app.rs')
| -rw-r--r-- | embassy-nrf/src/chips/nrf54l05_app.rs | 746 |
1 files changed, 746 insertions, 0 deletions
diff --git a/embassy-nrf/src/chips/nrf54l05_app.rs b/embassy-nrf/src/chips/nrf54l05_app.rs new file mode 100644 index 000000000..8e6595248 --- /dev/null +++ b/embassy-nrf/src/chips/nrf54l05_app.rs | |||
| @@ -0,0 +1,746 @@ | |||
| 1 | /// Peripheral Access Crate | ||
| 2 | #[allow(unused_imports)] | ||
| 3 | #[rustfmt::skip] | ||
| 4 | pub mod pac { | ||
| 5 | pub use nrf_pac::*; | ||
| 6 | |||
| 7 | #[cfg(feature = "_ns")] | ||
| 8 | #[doc(no_inline)] | ||
| 9 | pub use nrf_pac::{ | ||
| 10 | FICR_NS as FICR, | ||
| 11 | DPPIC00_NS as DPPIC00, | ||
| 12 | PPIB00_NS as PPIB00, | ||
| 13 | PPIB01_NS as PPIB01, | ||
| 14 | AAR00_NS as AAR00, | ||
| 15 | CCM00_NS as CCM00, | ||
| 16 | ECB00_NS as ECB00, | ||
| 17 | SPIM00_NS as SPIM00, | ||
| 18 | SPIS00_NS as SPIS00, | ||
| 19 | UARTE00_NS as UARTE00, | ||
| 20 | VPR00_NS as VPR00, | ||
| 21 | P2_NS as P2, | ||
| 22 | CTRLAP_NS as CTRLAP, | ||
| 23 | TAD_NS as TAD, | ||
| 24 | TIMER00_NS as TIMER00, | ||
| 25 | DPPIC10_NS as DPPIC10, | ||
| 26 | PPIB10_NS as PPIB10, | ||
| 27 | PPIB11_NS as PPIB11, | ||
| 28 | TIMER10_NS as TIMER10, | ||
| 29 | EGU10_NS as EGU10, | ||
| 30 | RADIO_NS as RADIO, | ||
| 31 | DPPIC20_NS as DPPIC20, | ||
| 32 | PPIB20_NS as PPIB20, | ||
| 33 | PPIB21_NS as PPIB21, | ||
| 34 | PPIB22_NS as PPIB22, | ||
| 35 | SPIM20_NS as SPIM20, | ||
| 36 | SPIS20_NS as SPIS20, | ||
| 37 | TWIM20_NS as TWIM20, | ||
| 38 | TWIS20_NS as TWIS20, | ||
| 39 | UARTE20_NS as UARTE20, | ||
| 40 | SPIM21_NS as SPIM21, | ||
| 41 | SPIS21_NS as SPIS21, | ||
| 42 | TWIM21_NS as TWIM21, | ||
| 43 | TWIS21_NS as TWIS21, | ||
| 44 | UARTE21_NS as UARTE21, | ||
| 45 | SPIM22_NS as SPIM22, | ||
| 46 | SPIS22_NS as SPIS22, | ||
| 47 | TWIM22_NS as TWIM22, | ||
| 48 | TWIS22_NS as TWIS22, | ||
| 49 | UARTE22_NS as UARTE22, | ||
| 50 | EGU20_NS as EGU20, | ||
| 51 | TIMER20_NS as TIMER20, | ||
| 52 | TIMER21_NS as TIMER21, | ||
| 53 | TIMER22_NS as TIMER22, | ||
| 54 | TIMER23_NS as TIMER23, | ||
| 55 | TIMER24_NS as TIMER24, | ||
| 56 | MEMCONF_NS as MEMCONF, | ||
| 57 | PDM20_NS as PDM20, | ||
| 58 | PDM21_NS as PDM21, | ||
| 59 | PWM20_NS as PWM20, | ||
| 60 | PWM21_NS as PWM21, | ||
| 61 | PWM22_NS as PWM22, | ||
| 62 | SAADC_NS as SAADC, | ||
| 63 | NFCT_NS as NFCT, | ||
| 64 | TEMP_NS as TEMP, | ||
| 65 | P1_NS as P1, | ||
| 66 | GPIOTE20_NS as GPIOTE20, | ||
| 67 | I2S20_NS as I2S20, | ||
| 68 | QDEC20_NS as QDEC20, | ||
| 69 | QDEC21_NS as QDEC21, | ||
| 70 | GRTC_NS as GRTC, | ||
| 71 | DPPIC30_NS as DPPIC30, | ||
| 72 | PPIB30_NS as PPIB30, | ||
| 73 | SPIM30_NS as SPIM30, | ||
| 74 | SPIS30_NS as SPIS30, | ||
| 75 | TWIM30_NS as TWIM30, | ||
| 76 | TWIS30_NS as TWIS30, | ||
| 77 | UARTE30_NS as UARTE30, | ||
| 78 | COMP_NS as COMP, | ||
| 79 | LPCOMP_NS as LPCOMP, | ||
| 80 | WDT31_NS as WDT31, | ||
| 81 | P0_NS as P0, | ||
| 82 | GPIOTE30_NS as GPIOTE30, | ||
| 83 | CLOCK_NS as CLOCK, | ||
| 84 | POWER_NS as POWER, | ||
| 85 | RESET_NS as RESET, | ||
| 86 | OSCILLATORS_NS as OSCILLATORS, | ||
| 87 | REGULATORS_NS as REGULATORS, | ||
| 88 | TPIU_NS as TPIU, | ||
| 89 | ETM_NS as ETM, | ||
| 90 | }; | ||
| 91 | |||
| 92 | #[cfg(feature = "_s")] | ||
| 93 | #[doc(no_inline)] | ||
| 94 | pub use nrf_pac::{ | ||
| 95 | FICR_NS as FICR, | ||
| 96 | SICR_S as SICR, | ||
| 97 | ICACHEDATA_S as ICACHEDATA, | ||
| 98 | ICACHEINFO_S as ICACHEINFO, | ||
| 99 | SWI00_S as SWI00, | ||
| 100 | SWI01_S as SWI01, | ||
| 101 | SWI02_S as SWI02, | ||
| 102 | SWI03_S as SWI03, | ||
| 103 | SPU00_S as SPU00, | ||
| 104 | MPC00_S as MPC00, | ||
| 105 | DPPIC00_S as DPPIC00, | ||
| 106 | PPIB00_S as PPIB00, | ||
| 107 | PPIB01_S as PPIB01, | ||
| 108 | KMU_S as KMU, | ||
| 109 | AAR00_S as AAR00, | ||
| 110 | CCM00_S as CCM00, | ||
| 111 | ECB00_S as ECB00, | ||
| 112 | CRACEN_S as CRACEN, | ||
| 113 | SPIM00_S as SPIM00, | ||
| 114 | SPIS00_S as SPIS00, | ||
| 115 | UARTE00_S as UARTE00, | ||
| 116 | GLITCHDET_S as GLITCHDET, | ||
| 117 | RRAMC_S as RRAMC, | ||
| 118 | VPR00_S as VPR00, | ||
| 119 | P2_S as P2, | ||
| 120 | CTRLAP_S as CTRLAP, | ||
| 121 | TAD_S as TAD, | ||
| 122 | TIMER00_S as TIMER00, | ||
| 123 | SPU10_S as SPU10, | ||
| 124 | DPPIC10_S as DPPIC10, | ||
| 125 | PPIB10_S as PPIB10, | ||
| 126 | PPIB11_S as PPIB11, | ||
| 127 | TIMER10_S as TIMER10, | ||
| 128 | EGU10_S as EGU10, | ||
| 129 | RADIO_S as RADIO, | ||
| 130 | SPU20_S as SPU20, | ||
| 131 | DPPIC20_S as DPPIC20, | ||
| 132 | PPIB20_S as PPIB20, | ||
| 133 | PPIB21_S as PPIB21, | ||
| 134 | PPIB22_S as PPIB22, | ||
| 135 | SPIM20_S as SPIM20, | ||
| 136 | SPIS20_S as SPIS20, | ||
| 137 | TWIM20_S as TWIM20, | ||
| 138 | TWIS20_S as TWIS20, | ||
| 139 | UARTE20_S as UARTE20, | ||
| 140 | SPIM21_S as SPIM21, | ||
| 141 | SPIS21_S as SPIS21, | ||
| 142 | TWIM21_S as TWIM21, | ||
| 143 | TWIS21_S as TWIS21, | ||
| 144 | UARTE21_S as UARTE21, | ||
| 145 | SPIM22_S as SPIM22, | ||
| 146 | SPIS22_S as SPIS22, | ||
| 147 | TWIM22_S as TWIM22, | ||
| 148 | TWIS22_S as TWIS22, | ||
| 149 | UARTE22_S as UARTE22, | ||
| 150 | EGU20_S as EGU20, | ||
| 151 | TIMER20_S as TIMER20, | ||
| 152 | TIMER21_S as TIMER21, | ||
| 153 | TIMER22_S as TIMER22, | ||
| 154 | TIMER23_S as TIMER23, | ||
| 155 | TIMER24_S as TIMER24, | ||
| 156 | MEMCONF_S as MEMCONF, | ||
| 157 | PDM20_S as PDM20, | ||
| 158 | PDM21_S as PDM21, | ||
| 159 | PWM20_S as PWM20, | ||
| 160 | PWM21_S as PWM21, | ||
| 161 | PWM22_S as PWM22, | ||
| 162 | SAADC_S as SAADC, | ||
| 163 | NFCT_S as NFCT, | ||
| 164 | TEMP_S as TEMP, | ||
| 165 | P1_S as P1, | ||
| 166 | GPIOTE20_S as GPIOTE20, | ||
| 167 | TAMPC_S as TAMPC, | ||
| 168 | I2S20_S as I2S20, | ||
| 169 | QDEC20_S as QDEC20, | ||
| 170 | QDEC21_S as QDEC21, | ||
| 171 | GRTC_S as GRTC, | ||
| 172 | SPU30_S as SPU30, | ||
| 173 | DPPIC30_S as DPPIC30, | ||
| 174 | PPIB30_S as PPIB30, | ||
| 175 | SPIM30_S as SPIM30, | ||
| 176 | SPIS30_S as SPIS30, | ||
| 177 | TWIM30_S as TWIM30, | ||
| 178 | TWIS30_S as TWIS30, | ||
| 179 | UARTE30_S as UARTE30, | ||
| 180 | COMP_S as COMP, | ||
| 181 | LPCOMP_S as LPCOMP, | ||
| 182 | WDT30_S as WDT30, | ||
| 183 | WDT31_S as WDT31, | ||
| 184 | P0_S as P0, | ||
| 185 | GPIOTE30_S as GPIOTE30, | ||
| 186 | CLOCK_S as CLOCK, | ||
| 187 | POWER_S as POWER, | ||
| 188 | RESET_S as RESET, | ||
| 189 | OSCILLATORS_S as OSCILLATORS, | ||
| 190 | REGULATORS_S as REGULATORS, | ||
| 191 | CRACENCORE_S as CRACENCORE, | ||
| 192 | CPUC_S as CPUC, | ||
| 193 | ICACHE_S as ICACHE, | ||
| 194 | }; | ||
| 195 | } | ||
| 196 | |||
| 197 | /// The maximum buffer size that the EasyDMA can send/recv in one operation. | ||
| 198 | pub const EASY_DMA_SIZE: usize = (1 << 16) - 1; | ||
| 199 | pub const FORCE_COPY_BUFFER_SIZE: usize = 1024; | ||
| 200 | |||
| 201 | // 1.5 MB NVM | ||
| 202 | #[allow(unused)] | ||
| 203 | pub const FLASH_SIZE: usize = 1524 * 1024; | ||
| 204 | |||
| 205 | embassy_hal_internal::peripherals! { | ||
| 206 | // PPI | ||
| 207 | PPI00_CH0, | ||
| 208 | PPI00_CH1, | ||
| 209 | PPI00_CH2, | ||
| 210 | PPI00_CH3, | ||
| 211 | PPI00_CH4, | ||
| 212 | PPI00_CH5, | ||
| 213 | PPI00_CH6, | ||
| 214 | PPI00_CH7, | ||
| 215 | |||
| 216 | PPI10_CH0, | ||
| 217 | PPI10_CH1, | ||
| 218 | PPI10_CH2, | ||
| 219 | PPI10_CH3, | ||
| 220 | PPI10_CH4, | ||
| 221 | PPI10_CH5, | ||
| 222 | PPI10_CH6, | ||
| 223 | PPI10_CH7, | ||
| 224 | PPI10_CH8, | ||
| 225 | PPI10_CH9, | ||
| 226 | PPI10_CH10, | ||
| 227 | PPI10_CH11, | ||
| 228 | PPI10_CH12, | ||
| 229 | PPI10_CH13, | ||
| 230 | PPI10_CH14, | ||
| 231 | PPI10_CH15, | ||
| 232 | PPI10_CH16, | ||
| 233 | PPI10_CH17, | ||
| 234 | PPI10_CH18, | ||
| 235 | PPI10_CH19, | ||
| 236 | PPI10_CH20, | ||
| 237 | PPI10_CH21, | ||
| 238 | PPI10_CH22, | ||
| 239 | PPI10_CH23, | ||
| 240 | |||
| 241 | PPI20_CH0, | ||
| 242 | PPI20_CH1, | ||
| 243 | PPI20_CH2, | ||
| 244 | PPI20_CH3, | ||
| 245 | PPI20_CH4, | ||
| 246 | PPI20_CH5, | ||
| 247 | PPI20_CH6, | ||
| 248 | PPI20_CH7, | ||
| 249 | PPI20_CH8, | ||
| 250 | PPI20_CH9, | ||
| 251 | PPI20_CH10, | ||
| 252 | PPI20_CH11, | ||
| 253 | PPI20_CH12, | ||
| 254 | PPI20_CH13, | ||
| 255 | PPI20_CH14, | ||
| 256 | PPI20_CH15, | ||
| 257 | |||
| 258 | PPI30_CH0, | ||
| 259 | PPI30_CH1, | ||
| 260 | PPI30_CH2, | ||
| 261 | PPI30_CH3, | ||
| 262 | |||
| 263 | PPI00_GROUP0, | ||
| 264 | PPI00_GROUP1, | ||
| 265 | |||
| 266 | PPI10_GROUP0, | ||
| 267 | PPI10_GROUP1, | ||
| 268 | PPI10_GROUP2, | ||
| 269 | PPI10_GROUP3, | ||
| 270 | PPI10_GROUP4, | ||
| 271 | PPI10_GROUP5, | ||
| 272 | |||
| 273 | PPI20_GROUP0, | ||
| 274 | PPI20_GROUP1, | ||
| 275 | PPI20_GROUP2, | ||
| 276 | PPI20_GROUP3, | ||
| 277 | PPI20_GROUP4, | ||
| 278 | PPI20_GROUP5, | ||
| 279 | |||
| 280 | PPI30_GROUP0, | ||
| 281 | PPI30_GROUP1, | ||
| 282 | |||
| 283 | // PPI BRIDGE channels | ||
| 284 | PPIB00_CH0, | ||
| 285 | PPIB00_CH1, | ||
| 286 | PPIB00_CH2, | ||
| 287 | PPIB00_CH3, | ||
| 288 | PPIB00_CH4, | ||
| 289 | PPIB00_CH5, | ||
| 290 | PPIB00_CH6, | ||
| 291 | PPIB00_CH7, | ||
| 292 | |||
| 293 | PPIB01_CH0, | ||
| 294 | PPIB01_CH1, | ||
| 295 | PPIB01_CH2, | ||
| 296 | PPIB01_CH3, | ||
| 297 | PPIB01_CH4, | ||
| 298 | PPIB01_CH5, | ||
| 299 | PPIB01_CH6, | ||
| 300 | PPIB01_CH7, | ||
| 301 | |||
| 302 | PPIB10_CH0, | ||
| 303 | PPIB10_CH1, | ||
| 304 | PPIB10_CH2, | ||
| 305 | PPIB10_CH3, | ||
| 306 | PPIB10_CH4, | ||
| 307 | PPIB10_CH5, | ||
| 308 | PPIB10_CH6, | ||
| 309 | PPIB10_CH7, | ||
| 310 | |||
| 311 | PPIB11_CH0, | ||
| 312 | PPIB11_CH1, | ||
| 313 | PPIB11_CH2, | ||
| 314 | PPIB11_CH3, | ||
| 315 | PPIB11_CH4, | ||
| 316 | PPIB11_CH5, | ||
| 317 | PPIB11_CH6, | ||
| 318 | PPIB11_CH7, | ||
| 319 | PPIB11_CH8, | ||
| 320 | PPIB11_CH9, | ||
| 321 | PPIB11_CH10, | ||
| 322 | PPIB11_CH11, | ||
| 323 | PPIB11_CH12, | ||
| 324 | PPIB11_CH13, | ||
| 325 | PPIB11_CH14, | ||
| 326 | PPIB11_CH15, | ||
| 327 | |||
| 328 | PPIB20_CH0, | ||
| 329 | PPIB20_CH1, | ||
| 330 | PPIB20_CH2, | ||
| 331 | PPIB20_CH3, | ||
| 332 | PPIB20_CH4, | ||
| 333 | PPIB20_CH5, | ||
| 334 | PPIB20_CH6, | ||
| 335 | PPIB20_CH7, | ||
| 336 | |||
| 337 | PPIB21_CH0, | ||
| 338 | PPIB21_CH1, | ||
| 339 | PPIB21_CH2, | ||
| 340 | PPIB21_CH3, | ||
| 341 | PPIB21_CH4, | ||
| 342 | PPIB21_CH5, | ||
| 343 | PPIB21_CH6, | ||
| 344 | PPIB21_CH7, | ||
| 345 | PPIB21_CH8, | ||
| 346 | PPIB21_CH9, | ||
| 347 | PPIB21_CH10, | ||
| 348 | PPIB21_CH11, | ||
| 349 | PPIB21_CH12, | ||
| 350 | PPIB21_CH13, | ||
| 351 | PPIB21_CH14, | ||
| 352 | PPIB21_CH15, | ||
| 353 | |||
| 354 | PPIB22_CH0, | ||
| 355 | PPIB22_CH1, | ||
| 356 | PPIB22_CH2, | ||
| 357 | PPIB22_CH3, | ||
| 358 | |||
| 359 | PPIB30_CH0, | ||
| 360 | PPIB30_CH1, | ||
| 361 | PPIB30_CH2, | ||
| 362 | PPIB30_CH3, | ||
| 363 | |||
| 364 | // Timers | ||
| 365 | TIMER00, | ||
| 366 | TIMER10, | ||
| 367 | TIMER20, | ||
| 368 | TIMER21, | ||
| 369 | TIMER22, | ||
| 370 | TIMER23, | ||
| 371 | TIMER24, | ||
| 372 | |||
| 373 | // GPIO port 0 | ||
| 374 | P0_00, | ||
| 375 | P0_01, | ||
| 376 | P0_02, | ||
| 377 | P0_03, | ||
| 378 | P0_04, | ||
| 379 | P0_05, | ||
| 380 | P0_06, | ||
| 381 | |||
| 382 | // GPIO port 1 | ||
| 383 | P1_00, | ||
| 384 | P1_01, | ||
| 385 | P1_02, | ||
| 386 | P1_03, | ||
| 387 | P1_04, | ||
| 388 | P1_05, | ||
| 389 | P1_06, | ||
| 390 | P1_07, | ||
| 391 | P1_08, | ||
| 392 | P1_09, | ||
| 393 | P1_10, | ||
| 394 | P1_11, | ||
| 395 | P1_12, | ||
| 396 | P1_13, | ||
| 397 | P1_14, | ||
| 398 | P1_15, | ||
| 399 | P1_16, | ||
| 400 | |||
| 401 | |||
| 402 | // GPIO port 2 | ||
| 403 | P2_00, | ||
| 404 | P2_01, | ||
| 405 | P2_02, | ||
| 406 | P2_03, | ||
| 407 | P2_04, | ||
| 408 | P2_05, | ||
| 409 | P2_06, | ||
| 410 | P2_07, | ||
| 411 | P2_08, | ||
| 412 | P2_09, | ||
| 413 | P2_10, | ||
| 414 | |||
| 415 | // GRTC | ||
| 416 | GRTC_CH0, | ||
| 417 | #[cfg(not(feature = "time-driver-grtc"))] | ||
| 418 | GRTC_CH1, | ||
| 419 | GRTC_CH2, | ||
| 420 | GRTC_CH3, | ||
| 421 | GRTC_CH4, | ||
| 422 | GRTC_CH5, | ||
| 423 | GRTC_CH6, | ||
| 424 | GRTC_CH7, | ||
| 425 | GRTC_CH8, | ||
| 426 | GRTC_CH9, | ||
| 427 | GRTC_CH10, | ||
| 428 | GRTC_CH11, | ||
| 429 | |||
| 430 | // PWM | ||
| 431 | PWM20, | ||
| 432 | PWM21, | ||
| 433 | PWM22, | ||
| 434 | |||
| 435 | // SERIAL | ||
| 436 | SERIAL00, | ||
| 437 | SERIAL20, | ||
| 438 | SERIAL21, | ||
| 439 | SERIAL22, | ||
| 440 | SERIAL30, | ||
| 441 | |||
| 442 | // SAADC | ||
| 443 | SAADC, | ||
| 444 | |||
| 445 | // RADIO | ||
| 446 | RADIO, | ||
| 447 | |||
| 448 | |||
| 449 | // GPIOTE instances | ||
| 450 | GPIOTE20, | ||
| 451 | GPIOTE30, | ||
| 452 | |||
| 453 | // GPIOTE channels | ||
| 454 | GPIOTE20_CH0, | ||
| 455 | GPIOTE20_CH1, | ||
| 456 | GPIOTE20_CH2, | ||
| 457 | GPIOTE20_CH3, | ||
| 458 | GPIOTE20_CH4, | ||
| 459 | GPIOTE20_CH5, | ||
| 460 | GPIOTE20_CH6, | ||
| 461 | GPIOTE20_CH7, | ||
| 462 | GPIOTE30_CH0, | ||
| 463 | GPIOTE30_CH1, | ||
| 464 | GPIOTE30_CH2, | ||
| 465 | GPIOTE30_CH3, | ||
| 466 | |||
| 467 | // CRACEN | ||
| 468 | #[cfg(feature = "_s")] | ||
| 469 | CRACEN, | ||
| 470 | |||
| 471 | #[cfg(feature = "_s")] | ||
| 472 | // RRAMC | ||
| 473 | RRAMC, | ||
| 474 | |||
| 475 | // TEMP | ||
| 476 | TEMP, | ||
| 477 | |||
| 478 | // WDT | ||
| 479 | #[cfg(feature = "_ns")] | ||
| 480 | WDT, | ||
| 481 | #[cfg(feature = "_s")] | ||
| 482 | WDT0, | ||
| 483 | #[cfg(feature = "_s")] | ||
| 484 | WDT1, | ||
| 485 | } | ||
| 486 | |||
| 487 | impl_pin!(P0_00, 0, 0); | ||
| 488 | impl_pin!(P0_01, 0, 1); | ||
| 489 | impl_pin!(P0_02, 0, 2); | ||
| 490 | impl_pin!(P0_03, 0, 3); | ||
| 491 | impl_pin!(P0_04, 0, 4); | ||
| 492 | impl_pin!(P0_05, 0, 5); | ||
| 493 | impl_pin!(P0_06, 0, 6); | ||
| 494 | |||
| 495 | impl_pin!(P1_00, 1, 0); | ||
| 496 | impl_pin!(P1_01, 1, 1); | ||
| 497 | impl_pin!(P1_02, 1, 2); | ||
| 498 | impl_pin!(P1_03, 1, 3); | ||
| 499 | impl_pin!(P1_04, 1, 4); | ||
| 500 | impl_pin!(P1_05, 1, 5); | ||
| 501 | impl_pin!(P1_06, 1, 6); | ||
| 502 | impl_pin!(P1_07, 1, 7); | ||
| 503 | impl_pin!(P1_08, 1, 8); | ||
| 504 | impl_pin!(P1_09, 1, 9); | ||
| 505 | impl_pin!(P1_10, 1, 10); | ||
| 506 | impl_pin!(P1_11, 1, 11); | ||
| 507 | impl_pin!(P1_12, 1, 12); | ||
| 508 | impl_pin!(P1_13, 1, 13); | ||
| 509 | impl_pin!(P1_14, 1, 14); | ||
| 510 | impl_pin!(P1_15, 1, 15); | ||
| 511 | impl_pin!(P1_16, 1, 16); | ||
| 512 | |||
| 513 | impl_pin!(P2_00, 2, 0); | ||
| 514 | impl_pin!(P2_01, 2, 1); | ||
| 515 | impl_pin!(P2_02, 2, 2); | ||
| 516 | impl_pin!(P2_03, 2, 3); | ||
| 517 | impl_pin!(P2_04, 2, 4); | ||
| 518 | impl_pin!(P2_05, 2, 5); | ||
| 519 | impl_pin!(P2_06, 2, 6); | ||
| 520 | impl_pin!(P2_07, 2, 7); | ||
| 521 | impl_pin!(P2_08, 2, 8); | ||
| 522 | impl_pin!(P2_09, 2, 9); | ||
| 523 | impl_pin!(P2_10, 2, 10); | ||
| 524 | |||
| 525 | cfg_if::cfg_if! { | ||
| 526 | if #[cfg(feature = "gpiote")] { | ||
| 527 | impl_gpiote_pin!(P0_00, GPIOTE30); | ||
| 528 | impl_gpiote_pin!(P0_01, GPIOTE30); | ||
| 529 | impl_gpiote_pin!(P0_02, GPIOTE30); | ||
| 530 | impl_gpiote_pin!(P0_03, GPIOTE30); | ||
| 531 | impl_gpiote_pin!(P0_04, GPIOTE30); | ||
| 532 | impl_gpiote_pin!(P0_05, GPIOTE30); | ||
| 533 | impl_gpiote_pin!(P0_06, GPIOTE30); | ||
| 534 | |||
| 535 | impl_gpiote_pin!(P1_00, GPIOTE20); | ||
| 536 | impl_gpiote_pin!(P1_01, GPIOTE20); | ||
| 537 | impl_gpiote_pin!(P1_02, GPIOTE20); | ||
| 538 | impl_gpiote_pin!(P1_03, GPIOTE20); | ||
| 539 | impl_gpiote_pin!(P1_04, GPIOTE20); | ||
| 540 | impl_gpiote_pin!(P1_05, GPIOTE20); | ||
| 541 | impl_gpiote_pin!(P1_06, GPIOTE20); | ||
| 542 | impl_gpiote_pin!(P1_07, GPIOTE20); | ||
| 543 | impl_gpiote_pin!(P1_08, GPIOTE20); | ||
| 544 | impl_gpiote_pin!(P1_09, GPIOTE20); | ||
| 545 | impl_gpiote_pin!(P1_10, GPIOTE20); | ||
| 546 | impl_gpiote_pin!(P1_11, GPIOTE20); | ||
| 547 | impl_gpiote_pin!(P1_12, GPIOTE20); | ||
| 548 | impl_gpiote_pin!(P1_13, GPIOTE20); | ||
| 549 | impl_gpiote_pin!(P1_14, GPIOTE20); | ||
| 550 | impl_gpiote_pin!(P1_15, GPIOTE20); | ||
| 551 | impl_gpiote_pin!(P1_16, GPIOTE20); | ||
| 552 | } | ||
| 553 | } | ||
| 554 | |||
| 555 | #[cfg(feature = "_ns")] | ||
| 556 | impl_wdt!(WDT, WDT31, WDT31, 0); | ||
| 557 | #[cfg(feature = "_s")] | ||
| 558 | impl_wdt!(WDT0, WDT31, WDT31, 0); | ||
| 559 | #[cfg(feature = "_s")] | ||
| 560 | impl_wdt!(WDT1, WDT30, WDT30, 1); | ||
| 561 | // DPPI00 channels | ||
| 562 | impl_ppi_channel!(PPI00_CH0, DPPIC00, 0 => configurable); | ||
| 563 | impl_ppi_channel!(PPI00_CH1, DPPIC00, 1 => configurable); | ||
| 564 | impl_ppi_channel!(PPI00_CH2, DPPIC00, 2 => configurable); | ||
| 565 | impl_ppi_channel!(PPI00_CH3, DPPIC00, 3 => configurable); | ||
| 566 | impl_ppi_channel!(PPI00_CH4, DPPIC00, 4 => configurable); | ||
| 567 | impl_ppi_channel!(PPI00_CH5, DPPIC00, 5 => configurable); | ||
| 568 | impl_ppi_channel!(PPI00_CH6, DPPIC00, 6 => configurable); | ||
| 569 | impl_ppi_channel!(PPI00_CH7, DPPIC00, 7 => configurable); | ||
| 570 | |||
| 571 | // DPPI10 channels | ||
| 572 | impl_ppi_channel!(PPI10_CH0, DPPIC10, 0 => static); | ||
| 573 | |||
| 574 | // DPPI20 channels | ||
| 575 | impl_ppi_channel!(PPI20_CH0, DPPIC20, 0 => configurable); | ||
| 576 | impl_ppi_channel!(PPI20_CH1, DPPIC20, 1 => configurable); | ||
| 577 | impl_ppi_channel!(PPI20_CH2, DPPIC20, 2 => configurable); | ||
| 578 | impl_ppi_channel!(PPI20_CH3, DPPIC20, 3 => configurable); | ||
| 579 | impl_ppi_channel!(PPI20_CH4, DPPIC20, 4 => configurable); | ||
| 580 | impl_ppi_channel!(PPI20_CH5, DPPIC20, 5 => configurable); | ||
| 581 | impl_ppi_channel!(PPI20_CH6, DPPIC20, 6 => configurable); | ||
| 582 | impl_ppi_channel!(PPI20_CH7, DPPIC20, 7 => configurable); | ||
| 583 | impl_ppi_channel!(PPI20_CH8, DPPIC20, 8 => configurable); | ||
| 584 | impl_ppi_channel!(PPI20_CH9, DPPIC20, 9 => configurable); | ||
| 585 | impl_ppi_channel!(PPI20_CH10, DPPIC20, 10 => configurable); | ||
| 586 | impl_ppi_channel!(PPI20_CH11, DPPIC20, 11 => configurable); | ||
| 587 | impl_ppi_channel!(PPI20_CH12, DPPIC20, 12 => configurable); | ||
| 588 | impl_ppi_channel!(PPI20_CH13, DPPIC20, 13 => configurable); | ||
| 589 | impl_ppi_channel!(PPI20_CH14, DPPIC20, 14 => configurable); | ||
| 590 | impl_ppi_channel!(PPI20_CH15, DPPIC20, 15 => configurable); | ||
| 591 | |||
| 592 | // DPPI30 channels | ||
| 593 | impl_ppi_channel!(PPI30_CH0, DPPIC30, 0 => configurable); | ||
| 594 | impl_ppi_channel!(PPI30_CH1, DPPIC30, 1 => configurable); | ||
| 595 | impl_ppi_channel!(PPI30_CH2, DPPIC30, 2 => configurable); | ||
| 596 | impl_ppi_channel!(PPI30_CH3, DPPIC30, 3 => configurable); | ||
| 597 | |||
| 598 | // DPPI00 groups | ||
| 599 | impl_ppi_group!(PPI00_GROUP0, DPPIC00, 0); | ||
| 600 | impl_ppi_group!(PPI00_GROUP1, DPPIC00, 1); | ||
| 601 | |||
| 602 | // DPPI10 groups | ||
| 603 | impl_ppi_group!(PPI10_GROUP0, DPPIC10, 0); | ||
| 604 | |||
| 605 | // DPPI20 groups | ||
| 606 | impl_ppi_group!(PPI20_GROUP0, DPPIC20, 0); | ||
| 607 | impl_ppi_group!(PPI20_GROUP1, DPPIC20, 1); | ||
| 608 | impl_ppi_group!(PPI20_GROUP2, DPPIC20, 2); | ||
| 609 | impl_ppi_group!(PPI20_GROUP3, DPPIC20, 3); | ||
| 610 | impl_ppi_group!(PPI20_GROUP4, DPPIC20, 4); | ||
| 611 | impl_ppi_group!(PPI20_GROUP5, DPPIC20, 5); | ||
| 612 | |||
| 613 | // DPPI30 groups | ||
| 614 | impl_ppi_group!(PPI30_GROUP0, DPPIC30, 0); | ||
| 615 | impl_ppi_group!(PPI30_GROUP1, DPPIC30, 1); | ||
| 616 | |||
| 617 | impl_timer!(TIMER00, TIMER00, TIMER00); | ||
| 618 | impl_timer!(TIMER10, TIMER10, TIMER10); | ||
| 619 | impl_timer!(TIMER20, TIMER20, TIMER20); | ||
| 620 | impl_timer!(TIMER21, TIMER21, TIMER21); | ||
| 621 | impl_timer!(TIMER22, TIMER22, TIMER22); | ||
| 622 | impl_timer!(TIMER23, TIMER23, TIMER23); | ||
| 623 | impl_timer!(TIMER24, TIMER24, TIMER24); | ||
| 624 | |||
| 625 | impl_twim!(SERIAL20, TWIM20, SERIAL20); | ||
| 626 | impl_twim!(SERIAL21, TWIM21, SERIAL21); | ||
| 627 | impl_twim!(SERIAL22, TWIM22, SERIAL22); | ||
| 628 | impl_twim!(SERIAL30, TWIM30, SERIAL30); | ||
| 629 | |||
| 630 | impl_twis!(SERIAL20, TWIS20, SERIAL20); | ||
| 631 | impl_twis!(SERIAL21, TWIS21, SERIAL21); | ||
| 632 | impl_twis!(SERIAL22, TWIS22, SERIAL22); | ||
| 633 | impl_twis!(SERIAL30, TWIS30, SERIAL30); | ||
| 634 | |||
| 635 | impl_pwm!(PWM20, PWM20, PWM20); | ||
| 636 | impl_pwm!(PWM21, PWM21, PWM21); | ||
| 637 | impl_pwm!(PWM22, PWM22, PWM22); | ||
| 638 | |||
| 639 | #[cfg(feature = "_s")] | ||
| 640 | impl_spim!( | ||
| 641 | SERIAL00, | ||
| 642 | SPIM00, | ||
| 643 | SERIAL00, | ||
| 644 | match pac::OSCILLATORS_S.pll().currentfreq().read().currentfreq() { | ||
| 645 | pac::oscillators::vals::Currentfreq::CK128M => 128_000_000, | ||
| 646 | pac::oscillators::vals::Currentfreq::CK64M => 64_000_000, | ||
| 647 | _ => unreachable!(), | ||
| 648 | } | ||
| 649 | ); | ||
| 650 | #[cfg(feature = "_ns")] | ||
| 651 | impl_spim!( | ||
| 652 | SERIAL00, | ||
| 653 | SPIM00, | ||
| 654 | SERIAL00, | ||
| 655 | match pac::OSCILLATORS_NS.pll().currentfreq().read().currentfreq() { | ||
| 656 | pac::oscillators::vals::Currentfreq::CK128M => 128_000_000, | ||
| 657 | pac::oscillators::vals::Currentfreq::CK64M => 64_000_000, | ||
| 658 | _ => unreachable!(), | ||
| 659 | } | ||
| 660 | ); | ||
| 661 | impl_spim!(SERIAL20, SPIM20, SERIAL20, 16_000_000); | ||
| 662 | impl_spim!(SERIAL21, SPIM21, SERIAL21, 16_000_000); | ||
| 663 | impl_spim!(SERIAL22, SPIM22, SERIAL22, 16_000_000); | ||
| 664 | impl_spim!(SERIAL30, SPIM30, SERIAL30, 16_000_000); | ||
| 665 | |||
| 666 | impl_spis!(SERIAL20, SPIS20, SERIAL20); | ||
| 667 | impl_spis!(SERIAL21, SPIS21, SERIAL21); | ||
| 668 | impl_spis!(SERIAL22, SPIS22, SERIAL22); | ||
| 669 | impl_spis!(SERIAL30, SPIS30, SERIAL30); | ||
| 670 | |||
| 671 | impl_uarte!(SERIAL00, UARTE00, SERIAL00); | ||
| 672 | impl_uarte!(SERIAL20, UARTE20, SERIAL20); | ||
| 673 | impl_uarte!(SERIAL21, UARTE21, SERIAL21); | ||
| 674 | impl_uarte!(SERIAL22, UARTE22, SERIAL22); | ||
| 675 | impl_uarte!(SERIAL30, UARTE30, SERIAL30); | ||
| 676 | |||
| 677 | // NB: SAADC uses "pin" abstraction, not "AIN" | ||
| 678 | impl_saadc_input!(P1_04, 1, 4); | ||
| 679 | impl_saadc_input!(P1_05, 1, 5); | ||
| 680 | impl_saadc_input!(P1_06, 1, 6); | ||
| 681 | impl_saadc_input!(P1_07, 1, 7); | ||
| 682 | impl_saadc_input!(P1_11, 1, 11); | ||
| 683 | impl_saadc_input!(P1_12, 1, 12); | ||
| 684 | impl_saadc_input!(P1_13, 1, 13); | ||
| 685 | impl_saadc_input!(P1_14, 1, 14); | ||
| 686 | |||
| 687 | #[cfg(feature = "_s")] | ||
| 688 | impl_cracen!(CRACEN, CRACEN, CRACEN); | ||
| 689 | |||
| 690 | embassy_hal_internal::interrupt_mod!( | ||
| 691 | SWI00, | ||
| 692 | SWI01, | ||
| 693 | SWI02, | ||
| 694 | SWI03, | ||
| 695 | SPU00, | ||
| 696 | MPC00, | ||
| 697 | AAR00_CCM00, | ||
| 698 | ECB00, | ||
| 699 | CRACEN, | ||
| 700 | SERIAL00, | ||
| 701 | RRAMC, | ||
| 702 | VPR00, | ||
| 703 | CTRLAP, | ||
| 704 | TIMER00, | ||
| 705 | SPU10, | ||
| 706 | TIMER10, | ||
| 707 | EGU10, | ||
| 708 | RADIO_0, | ||
| 709 | RADIO_1, | ||
| 710 | SPU20, | ||
| 711 | SERIAL20, | ||
| 712 | SERIAL21, | ||
| 713 | SERIAL22, | ||
| 714 | EGU20, | ||
| 715 | TIMER20, | ||
| 716 | TIMER21, | ||
| 717 | TIMER22, | ||
| 718 | TIMER23, | ||
| 719 | TIMER24, | ||
| 720 | PDM20, | ||
| 721 | PDM21, | ||
| 722 | PWM20, | ||
| 723 | PWM21, | ||
| 724 | PWM22, | ||
| 725 | SAADC, | ||
| 726 | NFCT, | ||
| 727 | TEMP, | ||
| 728 | GPIOTE20_0, | ||
| 729 | GPIOTE20_1, | ||
| 730 | TAMPC, | ||
| 731 | I2S20, | ||
| 732 | QDEC20, | ||
| 733 | QDEC21, | ||
| 734 | GRTC_0, | ||
| 735 | GRTC_1, | ||
| 736 | GRTC_2, | ||
| 737 | GRTC_3, | ||
| 738 | SPU30, | ||
| 739 | SERIAL30, | ||
| 740 | COMP_LPCOMP, | ||
| 741 | WDT30, | ||
| 742 | WDT31, | ||
| 743 | GPIOTE30_0, | ||
| 744 | GPIOTE30_1, | ||
| 745 | CLOCK_POWER, | ||
| 746 | ); | ||
