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