aboutsummaryrefslogtreecommitdiff
path: root/embassy-nrf/src/chips
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2024-11-17 14:32:35 +0100
committerDario Nieuwenhuis <[email protected]>2024-11-17 14:42:06 +0100
commita8d7a5eb1e2038d0961e5dda8b1d5d04826fe1fd (patch)
tree0a52bc47cf0a3438ccadcbb7f92b71f05f04f89b /embassy-nrf/src/chips
parent8d8cd78f634b2f435e3a997f7f8f3ac0b8ca300c (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.rs346
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]
4pub 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.
201pub 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
206embassy_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
250impl_pin!(P0_00, 0, 0);
251impl_pin!(P0_01, 0, 1);
252impl_pin!(P0_02, 0, 2);
253impl_pin!(P0_03, 0, 3);
254impl_pin!(P0_04, 0, 4);
255impl_pin!(P0_05, 0, 5);
256impl_pin!(P0_06, 0, 6);
257
258impl_pin!(P1_00, 1, 0);
259impl_pin!(P1_01, 1, 1);
260impl_pin!(P1_02, 1, 2);
261impl_pin!(P1_03, 1, 3);
262impl_pin!(P1_04, 1, 4);
263impl_pin!(P1_05, 1, 5);
264impl_pin!(P1_06, 1, 6);
265impl_pin!(P1_07, 1, 7);
266impl_pin!(P1_08, 1, 8);
267impl_pin!(P1_09, 1, 9);
268impl_pin!(P1_10, 1, 10);
269impl_pin!(P1_11, 1, 11);
270impl_pin!(P1_12, 1, 12);
271impl_pin!(P1_13, 1, 13);
272impl_pin!(P1_14, 1, 14);
273impl_pin!(P1_15, 1, 15);
274impl_pin!(P1_16, 1, 16);
275
276impl_pin!(P2_00, 2, 0);
277impl_pin!(P2_01, 2, 1);
278impl_pin!(P2_02, 2, 2);
279impl_pin!(P2_03, 2, 3);
280impl_pin!(P2_04, 2, 4);
281impl_pin!(P2_05, 2, 5);
282impl_pin!(P2_06, 2, 6);
283impl_pin!(P2_07, 2, 7);
284impl_pin!(P2_08, 2, 8);
285impl_pin!(P2_09, 2, 9);
286impl_pin!(P2_10, 2, 10);
287
288embassy_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);