diff options
| author | Dario Nieuwenhuis <[email protected]> | 2024-11-17 14:32:35 +0100 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2024-11-17 14:42:06 +0100 |
| commit | a8d7a5eb1e2038d0961e5dda8b1d5d04826fe1fd (patch) | |
| tree | 0a52bc47cf0a3438ccadcbb7f92b71f05f04f89b /embassy-nrf/src/chips | |
| parent | 8d8cd78f634b2f435e3a997f7f8f3ac0b8ca300c (diff) | |
nrf: add nrf54l base: gpio and time driver.
Diffstat (limited to 'embassy-nrf/src/chips')
| -rw-r--r-- | embassy-nrf/src/chips/nrf54l15_app.rs | 346 |
1 files changed, 346 insertions, 0 deletions
diff --git a/embassy-nrf/src/chips/nrf54l15_app.rs b/embassy-nrf/src/chips/nrf54l15_app.rs new file mode 100644 index 000000000..b133eb565 --- /dev/null +++ b/embassy-nrf/src/chips/nrf54l15_app.rs | |||
| @@ -0,0 +1,346 @@ | |||
| 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 | RTC10_NS as RTC10, | ||
| 30 | EGU10_NS as EGU10, | ||
| 31 | RADIO_NS as RADIO, | ||
| 32 | DPPIC20_NS as DPPIC20, | ||
| 33 | PPIB20_NS as PPIB20, | ||
| 34 | PPIB21_NS as PPIB21, | ||
| 35 | PPIB22_NS as PPIB22, | ||
| 36 | SPIM20_NS as SPIM20, | ||
| 37 | SPIS20_NS as SPIS20, | ||
| 38 | TWIM20_NS as TWIM20, | ||
| 39 | TWIS20_NS as TWIS20, | ||
| 40 | UARTE20_NS as UARTE20, | ||
| 41 | SPIM21_NS as SPIM21, | ||
| 42 | SPIS21_NS as SPIS21, | ||
| 43 | TWIM21_NS as TWIM21, | ||
| 44 | TWIS21_NS as TWIS21, | ||
| 45 | UARTE21_NS as UARTE21, | ||
| 46 | SPIM22_NS as SPIM22, | ||
| 47 | SPIS22_NS as SPIS22, | ||
| 48 | TWIM22_NS as TWIM22, | ||
| 49 | TWIS22_NS as TWIS22, | ||
| 50 | UARTE22_NS as UARTE22, | ||
| 51 | EGU20_NS as EGU20, | ||
| 52 | TIMER20_NS as TIMER20, | ||
| 53 | TIMER21_NS as TIMER21, | ||
| 54 | TIMER22_NS as TIMER22, | ||
| 55 | TIMER23_NS as TIMER23, | ||
| 56 | TIMER24_NS as TIMER24, | ||
| 57 | MEMCONF_NS as MEMCONF, | ||
| 58 | PDM20_NS as PDM20, | ||
| 59 | PDM21_NS as PDM21, | ||
| 60 | PWM20_NS as PWM20, | ||
| 61 | PWM21_NS as PWM21, | ||
| 62 | PWM22_NS as PWM22, | ||
| 63 | SAADC_NS as SAADC, | ||
| 64 | NFCT_NS as NFCT, | ||
| 65 | TEMP_NS as TEMP, | ||
| 66 | P1_NS as P1, | ||
| 67 | GPIOTE20_NS as GPIOTE20, | ||
| 68 | I2S20_NS as I2S20, | ||
| 69 | QDEC20_NS as QDEC20, | ||
| 70 | QDEC21_NS as QDEC21, | ||
| 71 | GRTC_NS as GRTC, | ||
| 72 | DPPIC30_NS as DPPIC30, | ||
| 73 | PPIB30_NS as PPIB30, | ||
| 74 | SPIM30_NS as SPIM30, | ||
| 75 | SPIS30_NS as SPIS30, | ||
| 76 | TWIM30_NS as TWIM30, | ||
| 77 | TWIS30_NS as TWIS30, | ||
| 78 | UARTE30_NS as UARTE30, | ||
| 79 | RTC30_NS as RTC30, | ||
| 80 | COMP_NS as COMP, | ||
| 81 | LPCOMP_NS as LPCOMP, | ||
| 82 | WDT31_NS as WDT31, | ||
| 83 | P0_NS as P0, | ||
| 84 | GPIOTE30_NS as GPIOTE30, | ||
| 85 | CLOCK_NS as CLOCK, | ||
| 86 | POWER_NS as POWER, | ||
| 87 | RESET_NS as RESET, | ||
| 88 | OSCILLATORS_NS as OSCILLATORS, | ||
| 89 | REGULATORS_NS as REGULATORS, | ||
| 90 | TPIU_NS as TPIU, | ||
| 91 | ETM_NS as ETM, | ||
| 92 | }; | ||
| 93 | |||
| 94 | #[cfg(feature = "_s")] | ||
| 95 | #[doc(no_inline)] | ||
| 96 | pub use nrf_pac::{ | ||
| 97 | SICR_S as SICR, | ||
| 98 | ICACHEDATA_S as ICACHEDATA, | ||
| 99 | ICACHEINFO_S as ICACHEINFO, | ||
| 100 | SWI00_S as SWI00, | ||
| 101 | SWI01_S as SWI01, | ||
| 102 | SWI02_S as SWI02, | ||
| 103 | SWI03_S as SWI03, | ||
| 104 | SPU00_S as SPU00, | ||
| 105 | MPC00_S as MPC00, | ||
| 106 | DPPIC00_S as DPPIC00, | ||
| 107 | PPIB00_S as PPIB00, | ||
| 108 | PPIB01_S as PPIB01, | ||
| 109 | KMU_S as KMU, | ||
| 110 | AAR00_S as AAR00, | ||
| 111 | CCM00_S as CCM00, | ||
| 112 | ECB00_S as ECB00, | ||
| 113 | CRACEN_S as CRACEN, | ||
| 114 | SPIM00_S as SPIM00, | ||
| 115 | SPIS00_S as SPIS00, | ||
| 116 | UARTE00_S as UARTE00, | ||
| 117 | GLITCHDET_S as GLITCHDET, | ||
| 118 | RRAMC_S as RRAMC, | ||
| 119 | VPR00_S as VPR00, | ||
| 120 | P2_S as P2, | ||
| 121 | CTRLAP_S as CTRLAP, | ||
| 122 | TAD_S as TAD, | ||
| 123 | TIMER00_S as TIMER00, | ||
| 124 | SPU10_S as SPU10, | ||
| 125 | DPPIC10_S as DPPIC10, | ||
| 126 | PPIB10_S as PPIB10, | ||
| 127 | PPIB11_S as PPIB11, | ||
| 128 | TIMER10_S as TIMER10, | ||
| 129 | RTC10_S as RTC10, | ||
| 130 | EGU10_S as EGU10, | ||
| 131 | RADIO_S as RADIO, | ||
| 132 | SPU20_S as SPU20, | ||
| 133 | DPPIC20_S as DPPIC20, | ||
| 134 | PPIB20_S as PPIB20, | ||
| 135 | PPIB21_S as PPIB21, | ||
| 136 | PPIB22_S as PPIB22, | ||
| 137 | SPIM20_S as SPIM20, | ||
| 138 | SPIS20_S as SPIS20, | ||
| 139 | TWIM20_S as TWIM20, | ||
| 140 | TWIS20_S as TWIS20, | ||
| 141 | UARTE20_S as UARTE20, | ||
| 142 | SPIM21_S as SPIM21, | ||
| 143 | SPIS21_S as SPIS21, | ||
| 144 | TWIM21_S as TWIM21, | ||
| 145 | TWIS21_S as TWIS21, | ||
| 146 | UARTE21_S as UARTE21, | ||
| 147 | SPIM22_S as SPIM22, | ||
| 148 | SPIS22_S as SPIS22, | ||
| 149 | TWIM22_S as TWIM22, | ||
| 150 | TWIS22_S as TWIS22, | ||
| 151 | UARTE22_S as UARTE22, | ||
| 152 | EGU20_S as EGU20, | ||
| 153 | TIMER20_S as TIMER20, | ||
| 154 | TIMER21_S as TIMER21, | ||
| 155 | TIMER22_S as TIMER22, | ||
| 156 | TIMER23_S as TIMER23, | ||
| 157 | TIMER24_S as TIMER24, | ||
| 158 | MEMCONF_S as MEMCONF, | ||
| 159 | PDM20_S as PDM20, | ||
| 160 | PDM21_S as PDM21, | ||
| 161 | PWM20_S as PWM20, | ||
| 162 | PWM21_S as PWM21, | ||
| 163 | PWM22_S as PWM22, | ||
| 164 | SAADC_S as SAADC, | ||
| 165 | NFCT_S as NFCT, | ||
| 166 | TEMP_S as TEMP, | ||
| 167 | P1_S as P1, | ||
| 168 | GPIOTE20_S as GPIOTE20, | ||
| 169 | TAMPC_S as TAMPC, | ||
| 170 | I2S20_S as I2S20, | ||
| 171 | QDEC20_S as QDEC20, | ||
| 172 | QDEC21_S as QDEC21, | ||
| 173 | GRTC_S as GRTC, | ||
| 174 | SPU30_S as SPU30, | ||
| 175 | DPPIC30_S as DPPIC30, | ||
| 176 | PPIB30_S as PPIB30, | ||
| 177 | SPIM30_S as SPIM30, | ||
| 178 | SPIS30_S as SPIS30, | ||
| 179 | TWIM30_S as TWIM30, | ||
| 180 | TWIS30_S as TWIS30, | ||
| 181 | UARTE30_S as UARTE30, | ||
| 182 | RTC30_S as RTC30, | ||
| 183 | COMP_S as COMP, | ||
| 184 | LPCOMP_S as LPCOMP, | ||
| 185 | WDT30_S as WDT30, | ||
| 186 | WDT31_S as WDT31, | ||
| 187 | P0_S as P0, | ||
| 188 | GPIOTE30_S as GPIOTE30, | ||
| 189 | CLOCK_S as CLOCK, | ||
| 190 | POWER_S as POWER, | ||
| 191 | RESET_S as RESET, | ||
| 192 | OSCILLATORS_S as OSCILLATORS, | ||
| 193 | REGULATORS_S as REGULATORS, | ||
| 194 | CRACENCORE_S as CRACENCORE, | ||
| 195 | CPUC_S as CPUC, | ||
| 196 | ICACHE_S as ICACHE, | ||
| 197 | }; | ||
| 198 | } | ||
| 199 | |||
| 200 | /// The maximum buffer size that the EasyDMA can send/recv in one operation. | ||
| 201 | pub const EASY_DMA_SIZE: usize = (1 << 16) - 1; | ||
| 202 | //pub const FORCE_COPY_BUFFER_SIZE: usize = 1024; | ||
| 203 | |||
| 204 | //pub const FLASH_SIZE: usize = 1024 * 1024; | ||
| 205 | |||
| 206 | embassy_hal_internal::peripherals! { | ||
| 207 | // GPIO port 0 | ||
| 208 | P0_00, | ||
| 209 | P0_01, | ||
| 210 | P0_02, | ||
| 211 | P0_03, | ||
| 212 | P0_04, | ||
| 213 | P0_05, | ||
| 214 | P0_06, | ||
| 215 | |||
| 216 | // GPIO port 1 | ||
| 217 | P1_00, | ||
| 218 | P1_01, | ||
| 219 | P1_02, | ||
| 220 | P1_03, | ||
| 221 | P1_04, | ||
| 222 | P1_05, | ||
| 223 | P1_06, | ||
| 224 | P1_07, | ||
| 225 | P1_08, | ||
| 226 | P1_09, | ||
| 227 | P1_10, | ||
| 228 | P1_11, | ||
| 229 | P1_12, | ||
| 230 | P1_13, | ||
| 231 | P1_14, | ||
| 232 | P1_15, | ||
| 233 | P1_16, | ||
| 234 | |||
| 235 | |||
| 236 | // GPIO port 2 | ||
| 237 | P2_00, | ||
| 238 | P2_01, | ||
| 239 | P2_02, | ||
| 240 | P2_03, | ||
| 241 | P2_04, | ||
| 242 | P2_05, | ||
| 243 | P2_06, | ||
| 244 | P2_07, | ||
| 245 | P2_08, | ||
| 246 | P2_09, | ||
| 247 | P2_10, | ||
| 248 | } | ||
| 249 | |||
| 250 | impl_pin!(P0_00, 0, 0); | ||
| 251 | impl_pin!(P0_01, 0, 1); | ||
| 252 | impl_pin!(P0_02, 0, 2); | ||
| 253 | impl_pin!(P0_03, 0, 3); | ||
| 254 | impl_pin!(P0_04, 0, 4); | ||
| 255 | impl_pin!(P0_05, 0, 5); | ||
| 256 | impl_pin!(P0_06, 0, 6); | ||
| 257 | |||
| 258 | impl_pin!(P1_00, 1, 0); | ||
| 259 | impl_pin!(P1_01, 1, 1); | ||
| 260 | impl_pin!(P1_02, 1, 2); | ||
| 261 | impl_pin!(P1_03, 1, 3); | ||
| 262 | impl_pin!(P1_04, 1, 4); | ||
| 263 | impl_pin!(P1_05, 1, 5); | ||
| 264 | impl_pin!(P1_06, 1, 6); | ||
| 265 | impl_pin!(P1_07, 1, 7); | ||
| 266 | impl_pin!(P1_08, 1, 8); | ||
| 267 | impl_pin!(P1_09, 1, 9); | ||
| 268 | impl_pin!(P1_10, 1, 10); | ||
| 269 | impl_pin!(P1_11, 1, 11); | ||
| 270 | impl_pin!(P1_12, 1, 12); | ||
| 271 | impl_pin!(P1_13, 1, 13); | ||
| 272 | impl_pin!(P1_14, 1, 14); | ||
| 273 | impl_pin!(P1_15, 1, 15); | ||
| 274 | impl_pin!(P1_16, 1, 16); | ||
| 275 | |||
| 276 | impl_pin!(P2_00, 2, 0); | ||
| 277 | impl_pin!(P2_01, 2, 1); | ||
| 278 | impl_pin!(P2_02, 2, 2); | ||
| 279 | impl_pin!(P2_03, 2, 3); | ||
| 280 | impl_pin!(P2_04, 2, 4); | ||
| 281 | impl_pin!(P2_05, 2, 5); | ||
| 282 | impl_pin!(P2_06, 2, 6); | ||
| 283 | impl_pin!(P2_07, 2, 7); | ||
| 284 | impl_pin!(P2_08, 2, 8); | ||
| 285 | impl_pin!(P2_09, 2, 9); | ||
| 286 | impl_pin!(P2_10, 2, 10); | ||
| 287 | |||
| 288 | embassy_hal_internal::interrupt_mod!( | ||
| 289 | SWI00, | ||
| 290 | SWI01, | ||
| 291 | SWI02, | ||
| 292 | SWI03, | ||
| 293 | SPU00, | ||
| 294 | MPC00, | ||
| 295 | AAR00_CCM00, | ||
| 296 | ECB00, | ||
| 297 | CRACEN, | ||
| 298 | SERIAL00, | ||
| 299 | RRAMC, | ||
| 300 | VPR00, | ||
| 301 | CTRLAP, | ||
| 302 | TIMER00, | ||
| 303 | SPU10, | ||
| 304 | TIMER10, | ||
| 305 | RTC10, | ||
| 306 | EGU10, | ||
| 307 | RADIO_0, | ||
| 308 | RADIO_1, | ||
| 309 | SPU20, | ||
| 310 | SERIAL20, | ||
| 311 | SERIAL21, | ||
| 312 | SERIAL22, | ||
| 313 | EGU20, | ||
| 314 | TIMER20, | ||
| 315 | TIMER21, | ||
| 316 | TIMER22, | ||
| 317 | TIMER23, | ||
| 318 | TIMER24, | ||
| 319 | PDM20, | ||
| 320 | PDM21, | ||
| 321 | PWM20, | ||
| 322 | PWM21, | ||
| 323 | PWM22, | ||
| 324 | SAADC, | ||
| 325 | NFCT, | ||
| 326 | TEMP, | ||
| 327 | GPIOTE20_0, | ||
| 328 | GPIOTE20_1, | ||
| 329 | TAMPC, | ||
| 330 | I2S20, | ||
| 331 | QDEC20, | ||
| 332 | QDEC21, | ||
| 333 | GRTC_0, | ||
| 334 | GRTC_1, | ||
| 335 | GRTC_2, | ||
| 336 | GRTC_3, | ||
| 337 | SPU30, | ||
| 338 | SERIAL30, | ||
| 339 | RTC30, | ||
| 340 | COMP_LPCOMP, | ||
| 341 | WDT30, | ||
| 342 | WDT31, | ||
| 343 | GPIOTE30_0, | ||
| 344 | GPIOTE30_1, | ||
| 345 | CLOCK_POWER, | ||
| 346 | ); | ||
