1 #ifndef NRF54L_ERRATAS_H
2 #define NRF54L_ERRATAS_H
3
4 /*
5
6 Copyright (c) 2010 - 2025, Nordic Semiconductor ASA All rights reserved.
7
8 SPDX-License-Identifier: BSD-3-Clause
9
10 Redistribution and use in source and binary forms, with or without
11 modification, are permitted provided that the following conditions are met:
12
13 1. Redistributions of source code must retain the above copyright notice, this
14 list of conditions and the following disclaimer.
15
16 2. Redistributions in binary form must reproduce the above copyright
17 notice, this list of conditions and the following disclaimer in the
18 documentation and/or other materials provided with the distribution.
19
20 3. Neither the name of Nordic Semiconductor ASA nor the names of its
21 contributors may be used to endorse or promote products derived from this
22 software without specific prior written permission.
23
24 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 IMPLIED WARRANTIES OF MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE
27 ARE DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
28 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 POSSIBILITY OF SUCH DAMAGE.
35
36 */
37
38 #include <stdint.h>
39 #include <stdbool.h>
40 #include "compiler_abstraction.h"
41
42 static bool nrf54l_errata_1(void) __UNUSED;
43 static bool nrf54l_errata_2(void) __UNUSED;
44 static bool nrf54l_errata_3(void) __UNUSED;
45 static bool nrf54l_errata_4(void) __UNUSED;
46 static bool nrf54l_errata_6(void) __UNUSED;
47 static bool nrf54l_errata_7(void) __UNUSED;
48 static bool nrf54l_errata_8(void) __UNUSED;
49 static bool nrf54l_errata_9(void) __UNUSED;
50 static bool nrf54l_errata_10(void) __UNUSED;
51 static bool nrf54l_errata_13(void) __UNUSED;
52 static bool nrf54l_errata_16(void) __UNUSED;
53 static bool nrf54l_errata_17(void) __UNUSED;
54 static bool nrf54l_errata_18(void) __UNUSED;
55 static bool nrf54l_errata_19(void) __UNUSED;
56 static bool nrf54l_errata_20(void) __UNUSED;
57 static bool nrf54l_errata_21(void) __UNUSED;
58 static bool nrf54l_errata_22(void) __UNUSED;
59 static bool nrf54l_errata_23(void) __UNUSED;
60 static bool nrf54l_errata_24(void) __UNUSED;
61 static bool nrf54l_errata_25(void) __UNUSED;
62 static bool nrf54l_errata_26(void) __UNUSED;
63 static bool nrf54l_errata_27(void) __UNUSED;
64 static bool nrf54l_errata_30(void) __UNUSED;
65 static bool nrf54l_errata_31(void) __UNUSED;
66 static bool nrf54l_errata_32(void) __UNUSED;
67 static bool nrf54l_errata_33(void) __UNUSED;
68 static bool nrf54l_errata_35(void) __UNUSED;
69 static bool nrf54l_errata_37(void) __UNUSED;
70 static bool nrf54l_errata_38(void) __UNUSED;
71
72 /* ========= Errata 1 ========= */
73 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05) \
74 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10) \
75 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
76 #define NRF54L_ERRATA_1_PRESENT 1
77 #else
78 #define NRF54L_ERRATA_1_PRESENT 0
79 #endif
80
81 #ifndef NRF54L_ERRATA_1_ENABLE_WORKAROUND
82 #define NRF54L_ERRATA_1_ENABLE_WORKAROUND NRF54L_ERRATA_1_PRESENT
83 #endif
84
nrf54l_errata_1(void)85 static bool nrf54l_errata_1(void)
86 {
87 #ifndef NRF54L_SERIES
88 return false;
89 #else
90 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)\
91 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)\
92 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
93 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
94 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
95 #endif
96 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
97 if (var1 == 0x1C)
98 {
99 switch(var2)
100 {
101 case 0x01ul:
102 return true;
103 default:
104 return true;
105 }
106 }
107 #endif
108 #if defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)
109 if (var1 == 0x2E)
110 {
111 switch(var2)
112 {
113 case 0x01ul:
114 return true;
115 default:
116 return true;
117 }
118 }
119 #endif
120 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)
121 if (var1 == 0x2F)
122 {
123 switch(var2)
124 {
125 case 0x01ul:
126 return true;
127 default:
128 return true;
129 }
130 }
131 #endif
132 return false;
133 #endif
134 }
135
136 /* ========= Errata 2 ========= */
137 #define NRF54L_ERRATA_2_PRESENT 0
138
139 #ifndef NRF54L_ERRATA_2_ENABLE_WORKAROUND
140 #define NRF54L_ERRATA_2_ENABLE_WORKAROUND NRF54L_ERRATA_2_PRESENT
141 #endif
142
nrf54l_errata_2(void)143 static bool nrf54l_errata_2(void)
144 {
145 #ifndef NRF54L_SERIES
146 return false;
147 #else
148 return false;
149 #endif
150 }
151
152 /* ========= Errata 3 ========= */
153 #define NRF54L_ERRATA_3_PRESENT 0
154
155 #ifndef NRF54L_ERRATA_3_ENABLE_WORKAROUND
156 #define NRF54L_ERRATA_3_ENABLE_WORKAROUND NRF54L_ERRATA_3_PRESENT
157 #endif
158
nrf54l_errata_3(void)159 static bool nrf54l_errata_3(void)
160 {
161 #ifndef NRF54L_SERIES
162 return false;
163 #else
164 return false;
165 #endif
166 }
167
168 /* ========= Errata 4 ========= */
169 #define NRF54L_ERRATA_4_PRESENT 0
170
171 #ifndef NRF54L_ERRATA_4_ENABLE_WORKAROUND
172 #define NRF54L_ERRATA_4_ENABLE_WORKAROUND NRF54L_ERRATA_4_PRESENT
173 #endif
174
nrf54l_errata_4(void)175 static bool nrf54l_errata_4(void)
176 {
177 #ifndef NRF54L_SERIES
178 return false;
179 #else
180 return false;
181 #endif
182 }
183
184 /* ========= Errata 6 ========= */
185 #define NRF54L_ERRATA_6_PRESENT 0
186
187 #ifndef NRF54L_ERRATA_6_ENABLE_WORKAROUND
188 #define NRF54L_ERRATA_6_ENABLE_WORKAROUND NRF54L_ERRATA_6_PRESENT
189 #endif
190
nrf54l_errata_6(void)191 static bool nrf54l_errata_6(void)
192 {
193 #ifndef NRF54L_SERIES
194 return false;
195 #else
196 return false;
197 #endif
198 }
199
200 /* ========= Errata 7 ========= */
201 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05) \
202 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10) \
203 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
204 #define NRF54L_ERRATA_7_PRESENT 1
205 #else
206 #define NRF54L_ERRATA_7_PRESENT 0
207 #endif
208
209 #ifndef NRF54L_ERRATA_7_ENABLE_WORKAROUND
210 #define NRF54L_ERRATA_7_ENABLE_WORKAROUND NRF54L_ERRATA_7_PRESENT
211 #endif
212
nrf54l_errata_7(void)213 static bool nrf54l_errata_7(void)
214 {
215 #ifndef NRF54L_SERIES
216 return false;
217 #else
218 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)\
219 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)\
220 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
221 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
222 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
223 #endif
224 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
225 if (var1 == 0x1C)
226 {
227 switch(var2)
228 {
229 case 0x01ul:
230 return true;
231 default:
232 return true;
233 }
234 }
235 #endif
236 #if defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)
237 if (var1 == 0x2E)
238 {
239 switch(var2)
240 {
241 case 0x01ul:
242 return true;
243 default:
244 return true;
245 }
246 }
247 #endif
248 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)
249 if (var1 == 0x2F)
250 {
251 switch(var2)
252 {
253 case 0x01ul:
254 return true;
255 default:
256 return true;
257 }
258 }
259 #endif
260 return false;
261 #endif
262 }
263
264 /* ========= Errata 8 ========= */
265 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05) \
266 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10) \
267 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
268 #define NRF54L_ERRATA_8_PRESENT 1
269 #else
270 #define NRF54L_ERRATA_8_PRESENT 0
271 #endif
272
273 #ifndef NRF54L_ERRATA_8_ENABLE_WORKAROUND
274 #define NRF54L_ERRATA_8_ENABLE_WORKAROUND NRF54L_ERRATA_8_PRESENT
275 #endif
276
nrf54l_errata_8(void)277 static bool nrf54l_errata_8(void)
278 {
279 #ifndef NRF54L_SERIES
280 return false;
281 #else
282 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)\
283 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)\
284 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
285 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
286 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
287 #endif
288 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
289 if (var1 == 0x1C)
290 {
291 switch(var2)
292 {
293 case 0x01ul:
294 return true;
295 default:
296 return true;
297 }
298 }
299 #endif
300 #if defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)
301 if (var1 == 0x2E)
302 {
303 switch(var2)
304 {
305 case 0x01ul:
306 return true;
307 default:
308 return true;
309 }
310 }
311 #endif
312 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)
313 if (var1 == 0x2F)
314 {
315 switch(var2)
316 {
317 case 0x01ul:
318 return true;
319 default:
320 return true;
321 }
322 }
323 #endif
324 return false;
325 #endif
326 }
327
328 /* ========= Errata 9 ========= */
329 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05) \
330 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10) \
331 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
332 #define NRF54L_ERRATA_9_PRESENT 1
333 #else
334 #define NRF54L_ERRATA_9_PRESENT 0
335 #endif
336
337 #ifndef NRF54L_ERRATA_9_ENABLE_WORKAROUND
338 #define NRF54L_ERRATA_9_ENABLE_WORKAROUND NRF54L_ERRATA_9_PRESENT
339 #endif
340
nrf54l_errata_9(void)341 static bool nrf54l_errata_9(void)
342 {
343 #ifndef NRF54L_SERIES
344 return false;
345 #else
346 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)\
347 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)\
348 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
349 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
350 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
351 #endif
352 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
353 if (var1 == 0x1C)
354 {
355 switch(var2)
356 {
357 case 0x01ul:
358 return true;
359 default:
360 return true;
361 }
362 }
363 #endif
364 #if defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)
365 if (var1 == 0x2E)
366 {
367 switch(var2)
368 {
369 case 0x01ul:
370 return true;
371 default:
372 return true;
373 }
374 }
375 #endif
376 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)
377 if (var1 == 0x2F)
378 {
379 switch(var2)
380 {
381 case 0x01ul:
382 return true;
383 default:
384 return true;
385 }
386 }
387 #endif
388 return false;
389 #endif
390 }
391
392 /* ========= Errata 10 ========= */
393 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05) \
394 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10) \
395 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
396 #define NRF54L_ERRATA_10_PRESENT 1
397 #else
398 #define NRF54L_ERRATA_10_PRESENT 0
399 #endif
400
401 #ifndef NRF54L_ERRATA_10_ENABLE_WORKAROUND
402 #define NRF54L_ERRATA_10_ENABLE_WORKAROUND NRF54L_ERRATA_10_PRESENT
403 #endif
404
nrf54l_errata_10(void)405 static bool nrf54l_errata_10(void)
406 {
407 #ifndef NRF54L_SERIES
408 return false;
409 #else
410 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)\
411 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)\
412 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
413 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
414 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
415 #endif
416 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
417 if (var1 == 0x1C)
418 {
419 switch(var2)
420 {
421 case 0x01ul:
422 return true;
423 default:
424 return true;
425 }
426 }
427 #endif
428 #if defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)
429 if (var1 == 0x2E)
430 {
431 switch(var2)
432 {
433 case 0x01ul:
434 return true;
435 default:
436 return true;
437 }
438 }
439 #endif
440 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)
441 if (var1 == 0x2F)
442 {
443 switch(var2)
444 {
445 case 0x01ul:
446 return true;
447 default:
448 return true;
449 }
450 }
451 #endif
452 return false;
453 #endif
454 }
455
456 /* ========= Errata 13 ========= */
457 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05) \
458 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10) \
459 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
460 #define NRF54L_ERRATA_13_PRESENT 1
461 #else
462 #define NRF54L_ERRATA_13_PRESENT 0
463 #endif
464
465 #ifndef NRF54L_ERRATA_13_ENABLE_WORKAROUND
466 #define NRF54L_ERRATA_13_ENABLE_WORKAROUND NRF54L_ERRATA_13_PRESENT
467 #endif
468
nrf54l_errata_13(void)469 static bool nrf54l_errata_13(void)
470 {
471 #ifndef NRF54L_SERIES
472 return false;
473 #else
474 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)\
475 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)\
476 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
477 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
478 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
479 #endif
480 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
481 if (var1 == 0x1C)
482 {
483 switch(var2)
484 {
485 case 0x01ul:
486 return true;
487 default:
488 return true;
489 }
490 }
491 #endif
492 #if defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)
493 if (var1 == 0x2E)
494 {
495 switch(var2)
496 {
497 case 0x01ul:
498 return true;
499 default:
500 return true;
501 }
502 }
503 #endif
504 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)
505 if (var1 == 0x2F)
506 {
507 switch(var2)
508 {
509 case 0x01ul:
510 return true;
511 default:
512 return true;
513 }
514 }
515 #endif
516 return false;
517 #endif
518 }
519
520 /* ========= Errata 16 ========= */
521 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05) \
522 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10) \
523 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
524 #define NRF54L_ERRATA_16_PRESENT 1
525 #else
526 #define NRF54L_ERRATA_16_PRESENT 0
527 #endif
528
529 #ifndef NRF54L_ERRATA_16_ENABLE_WORKAROUND
530 #define NRF54L_ERRATA_16_ENABLE_WORKAROUND NRF54L_ERRATA_16_PRESENT
531 #endif
532
nrf54l_errata_16(void)533 static bool nrf54l_errata_16(void)
534 {
535 #ifndef NRF54L_SERIES
536 return false;
537 #else
538 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)\
539 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)\
540 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
541 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
542 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
543 #endif
544 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
545 if (var1 == 0x1C)
546 {
547 switch(var2)
548 {
549 case 0x01ul:
550 return true;
551 default:
552 return true;
553 }
554 }
555 #endif
556 #if defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)
557 if (var1 == 0x2E)
558 {
559 switch(var2)
560 {
561 case 0x01ul:
562 return true;
563 default:
564 return true;
565 }
566 }
567 #endif
568 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)
569 if (var1 == 0x2F)
570 {
571 switch(var2)
572 {
573 case 0x01ul:
574 return true;
575 default:
576 return true;
577 }
578 }
579 #endif
580 return false;
581 #endif
582 }
583
584 /* ========= Errata 17 ========= */
585 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05) \
586 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10) \
587 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
588 #define NRF54L_ERRATA_17_PRESENT 1
589 #else
590 #define NRF54L_ERRATA_17_PRESENT 0
591 #endif
592
593 #ifndef NRF54L_ERRATA_17_ENABLE_WORKAROUND
594 #define NRF54L_ERRATA_17_ENABLE_WORKAROUND NRF54L_ERRATA_17_PRESENT
595 #endif
596
nrf54l_errata_17(void)597 static bool nrf54l_errata_17(void)
598 {
599 #ifndef NRF54L_SERIES
600 return false;
601 #else
602 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)\
603 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)\
604 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
605 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
606 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
607 #endif
608 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
609 if (var1 == 0x1C)
610 {
611 switch(var2)
612 {
613 case 0x01ul:
614 return true;
615 default:
616 return true;
617 }
618 }
619 #endif
620 #if defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)
621 if (var1 == 0x2E)
622 {
623 switch(var2)
624 {
625 case 0x01ul:
626 return true;
627 default:
628 return true;
629 }
630 }
631 #endif
632 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)
633 if (var1 == 0x2F)
634 {
635 switch(var2)
636 {
637 case 0x01ul:
638 return true;
639 default:
640 return true;
641 }
642 }
643 #endif
644 return false;
645 #endif
646 }
647
648 /* ========= Errata 18 ========= */
649 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05) \
650 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10) \
651 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
652 #define NRF54L_ERRATA_18_PRESENT 1
653 #else
654 #define NRF54L_ERRATA_18_PRESENT 0
655 #endif
656
657 #ifndef NRF54L_ERRATA_18_ENABLE_WORKAROUND
658 #define NRF54L_ERRATA_18_ENABLE_WORKAROUND NRF54L_ERRATA_18_PRESENT
659 #endif
660
nrf54l_errata_18(void)661 static bool nrf54l_errata_18(void)
662 {
663 #ifndef NRF54L_SERIES
664 return false;
665 #else
666 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)\
667 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)\
668 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
669 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
670 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
671 #endif
672 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
673 if (var1 == 0x1C)
674 {
675 switch(var2)
676 {
677 case 0x01ul:
678 return true;
679 default:
680 return true;
681 }
682 }
683 #endif
684 #if defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)
685 if (var1 == 0x2E)
686 {
687 switch(var2)
688 {
689 case 0x01ul:
690 return true;
691 default:
692 return true;
693 }
694 }
695 #endif
696 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)
697 if (var1 == 0x2F)
698 {
699 switch(var2)
700 {
701 case 0x01ul:
702 return true;
703 default:
704 return true;
705 }
706 }
707 #endif
708 return false;
709 #endif
710 }
711
712 /* ========= Errata 19 ========= */
713 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05) \
714 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10) \
715 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
716 #define NRF54L_ERRATA_19_PRESENT 1
717 #else
718 #define NRF54L_ERRATA_19_PRESENT 0
719 #endif
720
721 #ifndef NRF54L_ERRATA_19_ENABLE_WORKAROUND
722 #define NRF54L_ERRATA_19_ENABLE_WORKAROUND NRF54L_ERRATA_19_PRESENT
723 #endif
724
nrf54l_errata_19(void)725 static bool nrf54l_errata_19(void)
726 {
727 #ifndef NRF54L_SERIES
728 return false;
729 #else
730 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)\
731 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)\
732 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
733 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
734 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
735 #endif
736 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
737 if (var1 == 0x1C)
738 {
739 switch(var2)
740 {
741 case 0x01ul:
742 return true;
743 default:
744 return true;
745 }
746 }
747 #endif
748 #if defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)
749 if (var1 == 0x2E)
750 {
751 switch(var2)
752 {
753 case 0x01ul:
754 return true;
755 default:
756 return true;
757 }
758 }
759 #endif
760 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)
761 if (var1 == 0x2F)
762 {
763 switch(var2)
764 {
765 case 0x01ul:
766 return true;
767 default:
768 return true;
769 }
770 }
771 #endif
772 return false;
773 #endif
774 }
775
776 /* ========= Errata 20 ========= */
777 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05) \
778 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10) \
779 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
780 #define NRF54L_ERRATA_20_PRESENT 1
781 #else
782 #define NRF54L_ERRATA_20_PRESENT 0
783 #endif
784
785 #ifndef NRF54L_ERRATA_20_ENABLE_WORKAROUND
786 #define NRF54L_ERRATA_20_ENABLE_WORKAROUND NRF54L_ERRATA_20_PRESENT
787 #endif
788
nrf54l_errata_20(void)789 static bool nrf54l_errata_20(void)
790 {
791 #ifndef NRF54L_SERIES
792 return false;
793 #else
794 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)\
795 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)\
796 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
797 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
798 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
799 #endif
800 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
801 if (var1 == 0x1C)
802 {
803 switch(var2)
804 {
805 case 0x01ul:
806 return true;
807 default:
808 return true;
809 }
810 }
811 #endif
812 #if defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)
813 if (var1 == 0x2E)
814 {
815 switch(var2)
816 {
817 case 0x01ul:
818 return true;
819 default:
820 return true;
821 }
822 }
823 #endif
824 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)
825 if (var1 == 0x2F)
826 {
827 switch(var2)
828 {
829 case 0x01ul:
830 return true;
831 default:
832 return true;
833 }
834 }
835 #endif
836 return false;
837 #endif
838 }
839
840 /* ========= Errata 21 ========= */
841 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05) \
842 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10) \
843 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
844 #define NRF54L_ERRATA_21_PRESENT 1
845 #else
846 #define NRF54L_ERRATA_21_PRESENT 0
847 #endif
848
849 #ifndef NRF54L_ERRATA_21_ENABLE_WORKAROUND
850 #define NRF54L_ERRATA_21_ENABLE_WORKAROUND NRF54L_ERRATA_21_PRESENT
851 #endif
852
nrf54l_errata_21(void)853 static bool nrf54l_errata_21(void)
854 {
855 #ifndef NRF54L_SERIES
856 return false;
857 #else
858 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)\
859 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)\
860 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
861 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
862 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
863 #endif
864 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
865 if (var1 == 0x1C)
866 {
867 switch(var2)
868 {
869 case 0x01ul:
870 return true;
871 default:
872 return true;
873 }
874 }
875 #endif
876 #if defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)
877 if (var1 == 0x2E)
878 {
879 switch(var2)
880 {
881 case 0x01ul:
882 return true;
883 default:
884 return true;
885 }
886 }
887 #endif
888 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)
889 if (var1 == 0x2F)
890 {
891 switch(var2)
892 {
893 case 0x01ul:
894 return true;
895 default:
896 return true;
897 }
898 }
899 #endif
900 return false;
901 #endif
902 }
903
904 /* ========= Errata 22 ========= */
905 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05) \
906 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10) \
907 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
908 #define NRF54L_ERRATA_22_PRESENT 1
909 #else
910 #define NRF54L_ERRATA_22_PRESENT 0
911 #endif
912
913 #ifndef NRF54L_ERRATA_22_ENABLE_WORKAROUND
914 #define NRF54L_ERRATA_22_ENABLE_WORKAROUND NRF54L_ERRATA_22_PRESENT
915 #endif
916
nrf54l_errata_22(void)917 static bool nrf54l_errata_22(void)
918 {
919 #ifndef NRF54L_SERIES
920 return false;
921 #else
922 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)\
923 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)\
924 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
925 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
926 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
927 #endif
928 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
929 if (var1 == 0x1C)
930 {
931 switch(var2)
932 {
933 case 0x01ul:
934 return true;
935 default:
936 return true;
937 }
938 }
939 #endif
940 #if defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)
941 if (var1 == 0x2E)
942 {
943 switch(var2)
944 {
945 case 0x01ul:
946 return true;
947 default:
948 return true;
949 }
950 }
951 #endif
952 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)
953 if (var1 == 0x2F)
954 {
955 switch(var2)
956 {
957 case 0x01ul:
958 return true;
959 default:
960 return true;
961 }
962 }
963 #endif
964 return false;
965 #endif
966 }
967
968 /* ========= Errata 23 ========= */
969 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05) \
970 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10) \
971 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
972 #define NRF54L_ERRATA_23_PRESENT 1
973 #else
974 #define NRF54L_ERRATA_23_PRESENT 0
975 #endif
976
977 #ifndef NRF54L_ERRATA_23_ENABLE_WORKAROUND
978 #define NRF54L_ERRATA_23_ENABLE_WORKAROUND NRF54L_ERRATA_23_PRESENT
979 #endif
980
nrf54l_errata_23(void)981 static bool nrf54l_errata_23(void)
982 {
983 #ifndef NRF54L_SERIES
984 return false;
985 #else
986 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)\
987 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)\
988 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
989 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
990 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
991 #endif
992 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
993 if (var1 == 0x1C)
994 {
995 switch(var2)
996 {
997 case 0x01ul:
998 return true;
999 default:
1000 return true;
1001 }
1002 }
1003 #endif
1004 #if defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)
1005 if (var1 == 0x2E)
1006 {
1007 switch(var2)
1008 {
1009 case 0x01ul:
1010 return true;
1011 default:
1012 return true;
1013 }
1014 }
1015 #endif
1016 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)
1017 if (var1 == 0x2F)
1018 {
1019 switch(var2)
1020 {
1021 case 0x01ul:
1022 return true;
1023 default:
1024 return true;
1025 }
1026 }
1027 #endif
1028 return false;
1029 #endif
1030 }
1031
1032 /* ========= Errata 24 ========= */
1033 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05) \
1034 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10) \
1035 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1036 #define NRF54L_ERRATA_24_PRESENT 1
1037 #else
1038 #define NRF54L_ERRATA_24_PRESENT 0
1039 #endif
1040
1041 #ifndef NRF54L_ERRATA_24_ENABLE_WORKAROUND
1042 #define NRF54L_ERRATA_24_ENABLE_WORKAROUND NRF54L_ERRATA_24_PRESENT
1043 #endif
1044
nrf54l_errata_24(void)1045 static bool nrf54l_errata_24(void)
1046 {
1047 #ifndef NRF54L_SERIES
1048 return false;
1049 #else
1050 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)\
1051 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)\
1052 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1053 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
1054 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
1055 #endif
1056 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1057 if (var1 == 0x1C)
1058 {
1059 switch(var2)
1060 {
1061 case 0x01ul:
1062 return true;
1063 default:
1064 return true;
1065 }
1066 }
1067 #endif
1068 #if defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)
1069 if (var1 == 0x2E)
1070 {
1071 switch(var2)
1072 {
1073 case 0x01ul:
1074 return true;
1075 default:
1076 return true;
1077 }
1078 }
1079 #endif
1080 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)
1081 if (var1 == 0x2F)
1082 {
1083 switch(var2)
1084 {
1085 case 0x01ul:
1086 return true;
1087 default:
1088 return true;
1089 }
1090 }
1091 #endif
1092 return false;
1093 #endif
1094 }
1095
1096 /* ========= Errata 25 ========= */
1097 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05) \
1098 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10) \
1099 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1100 #define NRF54L_ERRATA_25_PRESENT 1
1101 #else
1102 #define NRF54L_ERRATA_25_PRESENT 0
1103 #endif
1104
1105 #ifndef NRF54L_ERRATA_25_ENABLE_WORKAROUND
1106 #define NRF54L_ERRATA_25_ENABLE_WORKAROUND NRF54L_ERRATA_25_PRESENT
1107 #endif
1108
nrf54l_errata_25(void)1109 static bool nrf54l_errata_25(void)
1110 {
1111 #ifndef NRF54L_SERIES
1112 return false;
1113 #else
1114 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)\
1115 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)\
1116 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1117 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
1118 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
1119 #endif
1120 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1121 if (var1 == 0x1C)
1122 {
1123 switch(var2)
1124 {
1125 case 0x01ul:
1126 return true;
1127 default:
1128 return true;
1129 }
1130 }
1131 #endif
1132 #if defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)
1133 if (var1 == 0x2E)
1134 {
1135 switch(var2)
1136 {
1137 case 0x01ul:
1138 return true;
1139 default:
1140 return true;
1141 }
1142 }
1143 #endif
1144 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)
1145 if (var1 == 0x2F)
1146 {
1147 switch(var2)
1148 {
1149 case 0x01ul:
1150 return true;
1151 default:
1152 return true;
1153 }
1154 }
1155 #endif
1156 return false;
1157 #endif
1158 }
1159
1160 /* ========= Errata 26 ========= */
1161 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05) \
1162 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10) \
1163 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1164 #define NRF54L_ERRATA_26_PRESENT 1
1165 #else
1166 #define NRF54L_ERRATA_26_PRESENT 0
1167 #endif
1168
1169 #ifndef NRF54L_ERRATA_26_ENABLE_WORKAROUND
1170 #define NRF54L_ERRATA_26_ENABLE_WORKAROUND NRF54L_ERRATA_26_PRESENT
1171 #endif
1172
nrf54l_errata_26(void)1173 static bool nrf54l_errata_26(void)
1174 {
1175 #ifndef NRF54L_SERIES
1176 return false;
1177 #else
1178 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)\
1179 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)\
1180 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1181 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
1182 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
1183 #endif
1184 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1185 if (var1 == 0x1C)
1186 {
1187 switch(var2)
1188 {
1189 case 0x01ul:
1190 return true;
1191 default:
1192 return true;
1193 }
1194 }
1195 #endif
1196 #if defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)
1197 if (var1 == 0x2E)
1198 {
1199 switch(var2)
1200 {
1201 case 0x01ul:
1202 return true;
1203 default:
1204 return true;
1205 }
1206 }
1207 #endif
1208 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)
1209 if (var1 == 0x2F)
1210 {
1211 switch(var2)
1212 {
1213 case 0x01ul:
1214 return true;
1215 default:
1216 return true;
1217 }
1218 }
1219 #endif
1220 return false;
1221 #endif
1222 }
1223
1224 /* ========= Errata 27 ========= */
1225 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05) \
1226 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10) \
1227 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1228 #define NRF54L_ERRATA_27_PRESENT 1
1229 #else
1230 #define NRF54L_ERRATA_27_PRESENT 0
1231 #endif
1232
1233 #ifndef NRF54L_ERRATA_27_ENABLE_WORKAROUND
1234 #define NRF54L_ERRATA_27_ENABLE_WORKAROUND NRF54L_ERRATA_27_PRESENT
1235 #endif
1236
nrf54l_errata_27(void)1237 static bool nrf54l_errata_27(void)
1238 {
1239 #ifndef NRF54L_SERIES
1240 return false;
1241 #else
1242 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)\
1243 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)\
1244 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1245 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
1246 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
1247 #endif
1248 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1249 if (var1 == 0x1C)
1250 {
1251 switch(var2)
1252 {
1253 case 0x01ul:
1254 return true;
1255 default:
1256 return true;
1257 }
1258 }
1259 #endif
1260 #if defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)
1261 if (var1 == 0x2E)
1262 {
1263 switch(var2)
1264 {
1265 case 0x01ul:
1266 return true;
1267 default:
1268 return true;
1269 }
1270 }
1271 #endif
1272 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)
1273 if (var1 == 0x2F)
1274 {
1275 switch(var2)
1276 {
1277 case 0x01ul:
1278 return true;
1279 default:
1280 return true;
1281 }
1282 }
1283 #endif
1284 return false;
1285 #endif
1286 }
1287
1288 /* ========= Errata 30 ========= */
1289 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05) \
1290 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10) \
1291 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1292 #define NRF54L_ERRATA_30_PRESENT 1
1293 #else
1294 #define NRF54L_ERRATA_30_PRESENT 0
1295 #endif
1296
1297 #ifndef NRF54L_ERRATA_30_ENABLE_WORKAROUND
1298 #define NRF54L_ERRATA_30_ENABLE_WORKAROUND NRF54L_ERRATA_30_PRESENT
1299 #endif
1300
nrf54l_errata_30(void)1301 static bool nrf54l_errata_30(void)
1302 {
1303 #ifndef NRF54L_SERIES
1304 return false;
1305 #else
1306 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)\
1307 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)\
1308 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1309 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
1310 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
1311 #endif
1312 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1313 if (var1 == 0x1C)
1314 {
1315 switch(var2)
1316 {
1317 case 0x01ul:
1318 return true;
1319 default:
1320 return true;
1321 }
1322 }
1323 #endif
1324 #if defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)
1325 if (var1 == 0x2E)
1326 {
1327 switch(var2)
1328 {
1329 case 0x01ul:
1330 return true;
1331 default:
1332 return true;
1333 }
1334 }
1335 #endif
1336 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)
1337 if (var1 == 0x2F)
1338 {
1339 switch(var2)
1340 {
1341 case 0x01ul:
1342 return true;
1343 default:
1344 return true;
1345 }
1346 }
1347 #endif
1348 return false;
1349 #endif
1350 }
1351
1352 /* ========= Errata 31 ========= */
1353 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05) \
1354 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10) \
1355 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1356 #define NRF54L_ERRATA_31_PRESENT 1
1357 #else
1358 #define NRF54L_ERRATA_31_PRESENT 0
1359 #endif
1360
1361 #ifndef NRF54L_ERRATA_31_ENABLE_WORKAROUND
1362 #define NRF54L_ERRATA_31_ENABLE_WORKAROUND NRF54L_ERRATA_31_PRESENT
1363 #endif
1364
nrf54l_errata_31(void)1365 static bool nrf54l_errata_31(void)
1366 {
1367 #ifndef NRF54L_SERIES
1368 return false;
1369 #else
1370 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)\
1371 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)\
1372 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1373 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
1374 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
1375 #endif
1376 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1377 if (var1 == 0x1C)
1378 {
1379 switch(var2)
1380 {
1381 case 0x01ul:
1382 return true;
1383 default:
1384 return true;
1385 }
1386 }
1387 #endif
1388 #if defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)
1389 if (var1 == 0x2E)
1390 {
1391 switch(var2)
1392 {
1393 case 0x01ul:
1394 return true;
1395 default:
1396 return true;
1397 }
1398 }
1399 #endif
1400 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)
1401 if (var1 == 0x2F)
1402 {
1403 switch(var2)
1404 {
1405 case 0x01ul:
1406 return true;
1407 default:
1408 return true;
1409 }
1410 }
1411 #endif
1412 return false;
1413 #endif
1414 }
1415
1416 /* ========= Errata 32 ========= */
1417 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05) \
1418 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10) \
1419 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1420 #define NRF54L_ERRATA_32_PRESENT 1
1421 #else
1422 #define NRF54L_ERRATA_32_PRESENT 0
1423 #endif
1424
1425 #ifndef NRF54L_ERRATA_32_ENABLE_WORKAROUND
1426 #define NRF54L_ERRATA_32_ENABLE_WORKAROUND NRF54L_ERRATA_32_PRESENT
1427 #endif
1428
nrf54l_errata_32(void)1429 static bool nrf54l_errata_32(void)
1430 {
1431 #ifndef NRF54L_SERIES
1432 return false;
1433 #else
1434 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)\
1435 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)\
1436 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1437 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
1438 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
1439 #endif
1440 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1441 if (var1 == 0x1C)
1442 {
1443 switch(var2)
1444 {
1445 case 0x01ul:
1446 return true;
1447 default:
1448 return true;
1449 }
1450 }
1451 #endif
1452 #if defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)
1453 if (var1 == 0x2E)
1454 {
1455 switch(var2)
1456 {
1457 case 0x01ul:
1458 return true;
1459 default:
1460 return true;
1461 }
1462 }
1463 #endif
1464 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)
1465 if (var1 == 0x2F)
1466 {
1467 switch(var2)
1468 {
1469 case 0x01ul:
1470 return true;
1471 default:
1472 return true;
1473 }
1474 }
1475 #endif
1476 return false;
1477 #endif
1478 }
1479
1480 /* ========= Errata 33 ========= */
1481 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1482 #define NRF54L_ERRATA_33_PRESENT 1
1483 #else
1484 #define NRF54L_ERRATA_33_PRESENT 0
1485 #endif
1486
1487 #ifndef NRF54L_ERRATA_33_ENABLE_WORKAROUND
1488 #define NRF54L_ERRATA_33_ENABLE_WORKAROUND NRF54L_ERRATA_33_PRESENT
1489 #endif
1490
nrf54l_errata_33(void)1491 static bool nrf54l_errata_33(void)
1492 {
1493 #ifndef NRF54L_SERIES
1494 return false;
1495 #else
1496 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1497 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
1498 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
1499 #endif
1500 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1501 if (var1 == 0x1C)
1502 {
1503 switch(var2)
1504 {
1505 case 0x01ul:
1506 return true;
1507 default:
1508 return true;
1509 }
1510 }
1511 #endif
1512 return false;
1513 #endif
1514 }
1515
1516 /* ========= Errata 35 ========= */
1517 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05) \
1518 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10) \
1519 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1520 #define NRF54L_ERRATA_35_PRESENT 1
1521 #else
1522 #define NRF54L_ERRATA_35_PRESENT 0
1523 #endif
1524
1525 #ifndef NRF54L_ERRATA_35_ENABLE_WORKAROUND
1526 #define NRF54L_ERRATA_35_ENABLE_WORKAROUND NRF54L_ERRATA_35_PRESENT
1527 #endif
1528
nrf54l_errata_35(void)1529 static bool nrf54l_errata_35(void)
1530 {
1531 #ifndef NRF54L_SERIES
1532 return false;
1533 #else
1534 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)\
1535 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)\
1536 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1537 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
1538 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
1539 #endif
1540 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1541 if (var1 == 0x1C)
1542 {
1543 switch(var2)
1544 {
1545 case 0x01ul:
1546 return true;
1547 default:
1548 return true;
1549 }
1550 }
1551 #endif
1552 #if defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)
1553 if (var1 == 0x2E)
1554 {
1555 switch(var2)
1556 {
1557 case 0x01ul:
1558 return true;
1559 default:
1560 return true;
1561 }
1562 }
1563 #endif
1564 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)
1565 if (var1 == 0x2F)
1566 {
1567 switch(var2)
1568 {
1569 case 0x01ul:
1570 return true;
1571 default:
1572 return true;
1573 }
1574 }
1575 #endif
1576 return false;
1577 #endif
1578 }
1579
1580 /* ========= Errata 37 ========= */
1581 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05) \
1582 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10) \
1583 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1584 #define NRF54L_ERRATA_37_PRESENT 1
1585 #else
1586 #define NRF54L_ERRATA_37_PRESENT 0
1587 #endif
1588
1589 #ifndef NRF54L_ERRATA_37_ENABLE_WORKAROUND
1590 #define NRF54L_ERRATA_37_ENABLE_WORKAROUND NRF54L_ERRATA_37_PRESENT
1591 #endif
1592
nrf54l_errata_37(void)1593 static bool nrf54l_errata_37(void)
1594 {
1595 #ifndef NRF54L_SERIES
1596 return false;
1597 #else
1598 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)\
1599 || defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)\
1600 || defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1601 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
1602 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
1603 #endif
1604 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1605 if (var1 == 0x1C)
1606 {
1607 switch(var2)
1608 {
1609 case 0x01ul:
1610 return true;
1611 default:
1612 return true;
1613 }
1614 }
1615 #endif
1616 #if defined (NRF54L10_XXAA) || defined (DEVELOP_IN_NRF54L10)
1617 if (var1 == 0x2E)
1618 {
1619 switch(var2)
1620 {
1621 case 0x01ul:
1622 return true;
1623 default:
1624 return true;
1625 }
1626 }
1627 #endif
1628 #if defined (NRF54L05_XXAA) || defined (DEVELOP_IN_NRF54L05)
1629 if (var1 == 0x2F)
1630 {
1631 switch(var2)
1632 {
1633 case 0x01ul:
1634 return true;
1635 default:
1636 return true;
1637 }
1638 }
1639 #endif
1640 return false;
1641 #endif
1642 }
1643
1644 /* ========= Errata 38 ========= */
1645 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1646 #define NRF54L_ERRATA_38_PRESENT 1
1647 #else
1648 #define NRF54L_ERRATA_38_PRESENT 0
1649 #endif
1650
1651 #ifndef NRF54L_ERRATA_38_ENABLE_WORKAROUND
1652 #define NRF54L_ERRATA_38_ENABLE_WORKAROUND NRF54L_ERRATA_38_PRESENT
1653 #endif
1654
nrf54l_errata_38(void)1655 static bool nrf54l_errata_38(void)
1656 {
1657 #ifndef NRF54L_SERIES
1658 return false;
1659 #else
1660 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1661 uint32_t var1 = *(uint32_t *)0x00FFC340ul;
1662 uint32_t var2 = *(uint32_t *)0x00FFC344ul;
1663 #endif
1664 #if defined (NRF54L15_XXAA) || defined (DEVELOP_IN_NRF54L15)
1665 if (var1 == 0x1C)
1666 {
1667 switch(var2)
1668 {
1669 case 0x01ul:
1670 return true;
1671 default:
1672 return true;
1673 }
1674 }
1675 #endif
1676 return false;
1677 #endif
1678 }
1679
1680 #endif /* NRF54L_ERRATAS_H */
1681