1pub use nrf_pac as pac;
2
3pub const EASY_DMA_SIZE: usize = (1 << 16) - 1;
5pub const FORCE_COPY_BUFFER_SIZE: usize = 512;
6
7pub const FLASH_SIZE: usize = 1024 * 1024;
8
9pub const RESET_PIN: u32 = 18;
10pub const APPROTECT_MIN_BUILD_CODE: u8 = b'F';
11
12embassy_hal_internal::peripherals! {
13 USBD,
15
16 RTC0,
18 #[cfg(not(feature = "time-driver-rtc1"))]
19 RTC1,
20 RTC2,
21
22 WDT,
24
25 NVMC,
27
28 RNG,
30
31 QSPI,
33
34 QDEC,
36
37 UARTE0,
39 UARTE1,
40
41 TWISPI0,
43 TWISPI1,
44 SPI2,
45 SPI3,
46
47 SAADC,
49
50 PWM0,
52 PWM1,
53 PWM2,
54 PWM3,
55
56 TIMER0,
58 TIMER1,
59 TIMER2,
60 TIMER3,
61 TIMER4,
62
63 GPIOTE_CH0,
65 GPIOTE_CH1,
66 GPIOTE_CH2,
67 GPIOTE_CH3,
68 GPIOTE_CH4,
69 GPIOTE_CH5,
70 GPIOTE_CH6,
71 GPIOTE_CH7,
72
73 PPI_CH0,
75 PPI_CH1,
76 PPI_CH2,
77 PPI_CH3,
78 PPI_CH4,
79 PPI_CH5,
80 PPI_CH6,
81 PPI_CH7,
82 PPI_CH8,
83 PPI_CH9,
84 PPI_CH10,
85 PPI_CH11,
86 PPI_CH12,
87 PPI_CH13,
88 PPI_CH14,
89 PPI_CH15,
90 PPI_CH16,
91 PPI_CH17,
92 PPI_CH18,
93 PPI_CH19,
94 PPI_CH20,
95 PPI_CH21,
96 PPI_CH22,
97 PPI_CH23,
98 PPI_CH24,
99 PPI_CH25,
100 PPI_CH26,
101 PPI_CH27,
102 PPI_CH28,
103 PPI_CH29,
104 PPI_CH30,
105 PPI_CH31,
106
107 PPI_GROUP0,
108 PPI_GROUP1,
109 PPI_GROUP2,
110 PPI_GROUP3,
111 PPI_GROUP4,
112 PPI_GROUP5,
113
114 P0_00,
116 P0_01,
117 P0_02,
118 P0_03,
119 P0_04,
120 P0_05,
121 P0_06,
122 P0_07,
123 P0_08,
124 #[cfg(feature = "nfc-pins-as-gpio")]
125 P0_09,
126 #[cfg(feature = "nfc-pins-as-gpio")]
127 P0_10,
128 P0_11,
129 P0_12,
130 P0_13,
131 P0_14,
132 P0_15,
133 P0_16,
134 P0_17,
135 #[cfg(feature="reset-pin-as-gpio")]
136 P0_18,
137 P0_19,
138 P0_20,
139 P0_21,
140 P0_22,
141 P0_23,
142 P0_24,
143 P0_25,
144 P0_26,
145 P0_27,
146 P0_28,
147 P0_29,
148 P0_30,
149 P0_31,
150
151 P1_00,
153 P1_01,
154 P1_02,
155 P1_03,
156 P1_04,
157 P1_05,
158 P1_06,
159 P1_07,
160 P1_08,
161 P1_09,
162 P1_10,
163 P1_11,
164 P1_12,
165 P1_13,
166 P1_14,
167 P1_15,
168
169 TEMP,
171
172 PDM,
174
175 I2S,
177
178 RADIO,
180
181 EGU0,
183 EGU1,
184 EGU2,
185 EGU3,
186 EGU4,
187 EGU5,
188
189 NFCT,
191}
192
193impl_usb!(USBD, USBD, USBD);
194
195impl_uarte!(UARTE0, UARTE0, UARTE0);
196impl_uarte!(UARTE1, UARTE1, UARTE1);
197
198impl_spim!(TWISPI0, SPIM0, TWISPI0);
199impl_spim!(TWISPI1, SPIM1, TWISPI1);
200impl_spim!(SPI2, SPIM2, SPI2);
201impl_spim!(SPI3, SPIM3, SPIM3);
202
203impl_spis!(TWISPI0, SPIS0, TWISPI0);
204impl_spis!(TWISPI1, SPIS1, TWISPI1);
205impl_spis!(SPI2, SPIS2, SPI2);
206
207impl_twim!(TWISPI0, TWIM0, TWISPI0);
208impl_twim!(TWISPI1, TWIM1, TWISPI1);
209
210impl_twis!(TWISPI0, TWIS0, TWISPI0);
211impl_twis!(TWISPI1, TWIS1, TWISPI1);
212
213impl_pwm!(PWM0, PWM0, PWM0);
214impl_pwm!(PWM1, PWM1, PWM1);
215impl_pwm!(PWM2, PWM2, PWM2);
216impl_pwm!(PWM3, PWM3, PWM3);
217
218impl_timer!(TIMER0, TIMER0, TIMER0);
219impl_timer!(TIMER1, TIMER1, TIMER1);
220impl_timer!(TIMER2, TIMER2, TIMER2);
221impl_timer!(TIMER3, TIMER3, TIMER3, extended);
222impl_timer!(TIMER4, TIMER4, TIMER4, extended);
223
224impl_rtc!(RTC0, RTC0, RTC0);
225#[cfg(not(feature = "time-driver-rtc1"))]
226impl_rtc!(RTC1, RTC1, RTC1);
227impl_rtc!(RTC2, RTC2, RTC2);
228
229impl_qspi!(QSPI, QSPI, QSPI);
230
231impl_pdm!(PDM, PDM, PDM);
232
233impl_qdec!(QDEC, QDEC, QDEC);
234
235impl_rng!(RNG, RNG, RNG);
236
237impl_pin!(P0_00, 0, 0);
238impl_pin!(P0_01, 0, 1);
239impl_pin!(P0_02, 0, 2);
240impl_pin!(P0_03, 0, 3);
241impl_pin!(P0_04, 0, 4);
242impl_pin!(P0_05, 0, 5);
243impl_pin!(P0_06, 0, 6);
244impl_pin!(P0_07, 0, 7);
245impl_pin!(P0_08, 0, 8);
246#[cfg(feature = "nfc-pins-as-gpio")]
247impl_pin!(P0_09, 0, 9);
248#[cfg(feature = "nfc-pins-as-gpio")]
249impl_pin!(P0_10, 0, 10);
250impl_pin!(P0_11, 0, 11);
251impl_pin!(P0_12, 0, 12);
252impl_pin!(P0_13, 0, 13);
253impl_pin!(P0_14, 0, 14);
254impl_pin!(P0_15, 0, 15);
255impl_pin!(P0_16, 0, 16);
256impl_pin!(P0_17, 0, 17);
257#[cfg(feature = "reset-pin-as-gpio")]
258impl_pin!(P0_18, 0, 18);
259impl_pin!(P0_19, 0, 19);
260impl_pin!(P0_20, 0, 20);
261impl_pin!(P0_21, 0, 21);
262impl_pin!(P0_22, 0, 22);
263impl_pin!(P0_23, 0, 23);
264impl_pin!(P0_24, 0, 24);
265impl_pin!(P0_25, 0, 25);
266impl_pin!(P0_26, 0, 26);
267impl_pin!(P0_27, 0, 27);
268impl_pin!(P0_28, 0, 28);
269impl_pin!(P0_29, 0, 29);
270impl_pin!(P0_30, 0, 30);
271impl_pin!(P0_31, 0, 31);
272
273impl_pin!(P1_00, 1, 0);
274impl_pin!(P1_01, 1, 1);
275impl_pin!(P1_02, 1, 2);
276impl_pin!(P1_03, 1, 3);
277impl_pin!(P1_04, 1, 4);
278impl_pin!(P1_05, 1, 5);
279impl_pin!(P1_06, 1, 6);
280impl_pin!(P1_07, 1, 7);
281impl_pin!(P1_08, 1, 8);
282impl_pin!(P1_09, 1, 9);
283impl_pin!(P1_10, 1, 10);
284impl_pin!(P1_11, 1, 11);
285impl_pin!(P1_12, 1, 12);
286impl_pin!(P1_13, 1, 13);
287impl_pin!(P1_14, 1, 14);
288impl_pin!(P1_15, 1, 15);
289
290impl_ppi_channel!(PPI_CH0, 0 => configurable);
291impl_ppi_channel!(PPI_CH1, 1 => configurable);
292impl_ppi_channel!(PPI_CH2, 2 => configurable);
293impl_ppi_channel!(PPI_CH3, 3 => configurable);
294impl_ppi_channel!(PPI_CH4, 4 => configurable);
295impl_ppi_channel!(PPI_CH5, 5 => configurable);
296impl_ppi_channel!(PPI_CH6, 6 => configurable);
297impl_ppi_channel!(PPI_CH7, 7 => configurable);
298impl_ppi_channel!(PPI_CH8, 8 => configurable);
299impl_ppi_channel!(PPI_CH9, 9 => configurable);
300impl_ppi_channel!(PPI_CH10, 10 => configurable);
301impl_ppi_channel!(PPI_CH11, 11 => configurable);
302impl_ppi_channel!(PPI_CH12, 12 => configurable);
303impl_ppi_channel!(PPI_CH13, 13 => configurable);
304impl_ppi_channel!(PPI_CH14, 14 => configurable);
305impl_ppi_channel!(PPI_CH15, 15 => configurable);
306impl_ppi_channel!(PPI_CH16, 16 => configurable);
307impl_ppi_channel!(PPI_CH17, 17 => configurable);
308impl_ppi_channel!(PPI_CH18, 18 => configurable);
309impl_ppi_channel!(PPI_CH19, 19 => configurable);
310impl_ppi_channel!(PPI_CH20, 20 => static);
311impl_ppi_channel!(PPI_CH21, 21 => static);
312impl_ppi_channel!(PPI_CH22, 22 => static);
313impl_ppi_channel!(PPI_CH23, 23 => static);
314impl_ppi_channel!(PPI_CH24, 24 => static);
315impl_ppi_channel!(PPI_CH25, 25 => static);
316impl_ppi_channel!(PPI_CH26, 26 => static);
317impl_ppi_channel!(PPI_CH27, 27 => static);
318impl_ppi_channel!(PPI_CH28, 28 => static);
319impl_ppi_channel!(PPI_CH29, 29 => static);
320impl_ppi_channel!(PPI_CH30, 30 => static);
321impl_ppi_channel!(PPI_CH31, 31 => static);
322
323impl_saadc_input!(P0_02, ANALOG_INPUT0);
324impl_saadc_input!(P0_03, ANALOG_INPUT1);
325impl_saadc_input!(P0_04, ANALOG_INPUT2);
326impl_saadc_input!(P0_05, ANALOG_INPUT3);
327impl_saadc_input!(P0_28, ANALOG_INPUT4);
328impl_saadc_input!(P0_29, ANALOG_INPUT5);
329impl_saadc_input!(P0_30, ANALOG_INPUT6);
330impl_saadc_input!(P0_31, ANALOG_INPUT7);
331
332impl_i2s!(I2S, I2S, I2S);
333
334impl_radio!(RADIO, RADIO, RADIO);
335
336impl_egu!(EGU0, EGU0, EGU0_SWI0);
337impl_egu!(EGU1, EGU1, EGU1_SWI1);
338impl_egu!(EGU2, EGU2, EGU2_SWI2);
339impl_egu!(EGU3, EGU3, EGU3_SWI3);
340impl_egu!(EGU4, EGU4, EGU4_SWI4);
341impl_egu!(EGU5, EGU5, EGU5_SWI5);
342
343impl_wdt!(WDT, WDT, WDT, 0);
344
345embassy_hal_internal::interrupt_mod!(
346 CLOCK_POWER,
347 RADIO,
348 UARTE0,
349 TWISPI0,
350 TWISPI1,
351 NFCT,
352 GPIOTE,
353 SAADC,
354 TIMER0,
355 TIMER1,
356 TIMER2,
357 RTC0,
358 TEMP,
359 RNG,
360 ECB,
361 AAR_CCM,
362 WDT,
363 RTC1,
364 QDEC,
365 COMP_LPCOMP,
366 EGU0_SWI0,
367 EGU1_SWI1,
368 EGU2_SWI2,
369 EGU3_SWI3,
370 EGU4_SWI4,
371 EGU5_SWI5,
372 TIMER3,
373 TIMER4,
374 PWM0,
375 PDM,
376 MWU,
377 PWM1,
378 PWM2,
379 SPI2,
380 RTC2,
381 I2S,
382 FPU,
383 USBD,
384 UARTE1,
385 QSPI,
386 CRYPTOCELL,
387 PWM3,
388 SPIM3,
389);