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