Branch data Line data Source code
1 : : #ifndef NRF52_ERRATAS_H 2 : : #define NRF52_ERRATAS_H 3 : : 4 : : /* 5 : : 6 : : Copyright (c) 2010 - 2021, 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 nrf52_errata_1(void) __UNUSED; 43 : : static bool nrf52_errata_2(void) __UNUSED; 44 : : static bool nrf52_errata_3(void) __UNUSED; 45 : : static bool nrf52_errata_4(void) __UNUSED; 46 : : static bool nrf52_errata_7(void) __UNUSED; 47 : : static bool nrf52_errata_8(void) __UNUSED; 48 : : static bool nrf52_errata_9(void) __UNUSED; 49 : : static bool nrf52_errata_10(void) __UNUSED; 50 : : static bool nrf52_errata_11(void) __UNUSED; 51 : : static bool nrf52_errata_12(void) __UNUSED; 52 : : static bool nrf52_errata_15(void) __UNUSED; 53 : : static bool nrf52_errata_16(void) __UNUSED; 54 : : static bool nrf52_errata_17(void) __UNUSED; 55 : : static bool nrf52_errata_20(void) __UNUSED; 56 : : static bool nrf52_errata_23(void) __UNUSED; 57 : : static bool nrf52_errata_24(void) __UNUSED; 58 : : static bool nrf52_errata_25(void) __UNUSED; 59 : : static bool nrf52_errata_26(void) __UNUSED; 60 : : static bool nrf52_errata_27(void) __UNUSED; 61 : : static bool nrf52_errata_28(void) __UNUSED; 62 : : static bool nrf52_errata_29(void) __UNUSED; 63 : : static bool nrf52_errata_30(void) __UNUSED; 64 : : static bool nrf52_errata_31(void) __UNUSED; 65 : : static bool nrf52_errata_32(void) __UNUSED; 66 : : static bool nrf52_errata_33(void) __UNUSED; 67 : : static bool nrf52_errata_34(void) __UNUSED; 68 : : static bool nrf52_errata_35(void) __UNUSED; 69 : : static bool nrf52_errata_36(void) __UNUSED; 70 : : static bool nrf52_errata_37(void) __UNUSED; 71 : : static bool nrf52_errata_38(void) __UNUSED; 72 : : static bool nrf52_errata_39(void) __UNUSED; 73 : : static bool nrf52_errata_40(void) __UNUSED; 74 : : static bool nrf52_errata_41(void) __UNUSED; 75 : : static bool nrf52_errata_42(void) __UNUSED; 76 : : static bool nrf52_errata_43(void) __UNUSED; 77 : : static bool nrf52_errata_44(void) __UNUSED; 78 : : static bool nrf52_errata_46(void) __UNUSED; 79 : : static bool nrf52_errata_47(void) __UNUSED; 80 : : static bool nrf52_errata_48(void) __UNUSED; 81 : : static bool nrf52_errata_49(void) __UNUSED; 82 : : static bool nrf52_errata_51(void) __UNUSED; 83 : : static bool nrf52_errata_54(void) __UNUSED; 84 : : static bool nrf52_errata_55(void) __UNUSED; 85 : : static bool nrf52_errata_57(void) __UNUSED; 86 : : static bool nrf52_errata_58(void) __UNUSED; 87 : : static bool nrf52_errata_62(void) __UNUSED; 88 : : static bool nrf52_errata_63(void) __UNUSED; 89 : : static bool nrf52_errata_64(void) __UNUSED; 90 : : static bool nrf52_errata_65(void) __UNUSED; 91 : : static bool nrf52_errata_66(void) __UNUSED; 92 : : static bool nrf52_errata_67(void) __UNUSED; 93 : : static bool nrf52_errata_68(void) __UNUSED; 94 : : static bool nrf52_errata_70(void) __UNUSED; 95 : : static bool nrf52_errata_71(void) __UNUSED; 96 : : static bool nrf52_errata_72(void) __UNUSED; 97 : : static bool nrf52_errata_73(void) __UNUSED; 98 : : static bool nrf52_errata_74(void) __UNUSED; 99 : : static bool nrf52_errata_75(void) __UNUSED; 100 : : static bool nrf52_errata_76(void) __UNUSED; 101 : : static bool nrf52_errata_77(void) __UNUSED; 102 : : static bool nrf52_errata_78(void) __UNUSED; 103 : : static bool nrf52_errata_79(void) __UNUSED; 104 : : static bool nrf52_errata_81(void) __UNUSED; 105 : : static bool nrf52_errata_83(void) __UNUSED; 106 : : static bool nrf52_errata_84(void) __UNUSED; 107 : : static bool nrf52_errata_86(void) __UNUSED; 108 : : static bool nrf52_errata_87(void) __UNUSED; 109 : : static bool nrf52_errata_88(void) __UNUSED; 110 : : static bool nrf52_errata_89(void) __UNUSED; 111 : : static bool nrf52_errata_91(void) __UNUSED; 112 : : static bool nrf52_errata_94(void) __UNUSED; 113 : : static bool nrf52_errata_96(void) __UNUSED; 114 : : static bool nrf52_errata_97(void) __UNUSED; 115 : : static bool nrf52_errata_98(void) __UNUSED; 116 : : static bool nrf52_errata_101(void) __UNUSED; 117 : : static bool nrf52_errata_102(void) __UNUSED; 118 : : static bool nrf52_errata_103(void) __UNUSED; 119 : : static bool nrf52_errata_104(void) __UNUSED; 120 : : static bool nrf52_errata_106(void) __UNUSED; 121 : : static bool nrf52_errata_107(void) __UNUSED; 122 : : static bool nrf52_errata_108(void) __UNUSED; 123 : : static bool nrf52_errata_109(void) __UNUSED; 124 : : static bool nrf52_errata_110(void) __UNUSED; 125 : : static bool nrf52_errata_111(void) __UNUSED; 126 : : static bool nrf52_errata_112(void) __UNUSED; 127 : : static bool nrf52_errata_113(void) __UNUSED; 128 : : static bool nrf52_errata_115(void) __UNUSED; 129 : : static bool nrf52_errata_116(void) __UNUSED; 130 : : static bool nrf52_errata_117(void) __UNUSED; 131 : : static bool nrf52_errata_118(void) __UNUSED; 132 : : static bool nrf52_errata_119(void) __UNUSED; 133 : : static bool nrf52_errata_120(void) __UNUSED; 134 : : static bool nrf52_errata_121(void) __UNUSED; 135 : : static bool nrf52_errata_122(void) __UNUSED; 136 : : static bool nrf52_errata_127(void) __UNUSED; 137 : : static bool nrf52_errata_128(void) __UNUSED; 138 : : static bool nrf52_errata_131(void) __UNUSED; 139 : : static bool nrf52_errata_132(void) __UNUSED; 140 : : static bool nrf52_errata_133(void) __UNUSED; 141 : : static bool nrf52_errata_134(void) __UNUSED; 142 : : static bool nrf52_errata_135(void) __UNUSED; 143 : : static bool nrf52_errata_136(void) __UNUSED; 144 : : static bool nrf52_errata_138(void) __UNUSED; 145 : : static bool nrf52_errata_140(void) __UNUSED; 146 : : static bool nrf52_errata_141(void) __UNUSED; 147 : : static bool nrf52_errata_142(void) __UNUSED; 148 : : static bool nrf52_errata_143(void) __UNUSED; 149 : : static bool nrf52_errata_144(void) __UNUSED; 150 : : static bool nrf52_errata_145(void) __UNUSED; 151 : : static bool nrf52_errata_146(void) __UNUSED; 152 : : static bool nrf52_errata_147(void) __UNUSED; 153 : : static bool nrf52_errata_149(void) __UNUSED; 154 : : static bool nrf52_errata_150(void) __UNUSED; 155 : : static bool nrf52_errata_151(void) __UNUSED; 156 : : static bool nrf52_errata_153(void) __UNUSED; 157 : : static bool nrf52_errata_154(void) __UNUSED; 158 : : static bool nrf52_errata_155(void) __UNUSED; 159 : : static bool nrf52_errata_156(void) __UNUSED; 160 : : static bool nrf52_errata_158(void) __UNUSED; 161 : : static bool nrf52_errata_160(void) __UNUSED; 162 : : static bool nrf52_errata_162(void) __UNUSED; 163 : : static bool nrf52_errata_163(void) __UNUSED; 164 : : static bool nrf52_errata_164(void) __UNUSED; 165 : : static bool nrf52_errata_166(void) __UNUSED; 166 : : static bool nrf52_errata_170(void) __UNUSED; 167 : : static bool nrf52_errata_171(void) __UNUSED; 168 : : static bool nrf52_errata_172(void) __UNUSED; 169 : : static bool nrf52_errata_173(void) __UNUSED; 170 : : static bool nrf52_errata_174(void) __UNUSED; 171 : : static bool nrf52_errata_176(void) __UNUSED; 172 : : static bool nrf52_errata_178(void) __UNUSED; 173 : : static bool nrf52_errata_179(void) __UNUSED; 174 : : static bool nrf52_errata_180(void) __UNUSED; 175 : : static bool nrf52_errata_181(void) __UNUSED; 176 : : static bool nrf52_errata_182(void) __UNUSED; 177 : : static bool nrf52_errata_183(void) __UNUSED; 178 : : static bool nrf52_errata_184(void) __UNUSED; 179 : : static bool nrf52_errata_186(void) __UNUSED; 180 : : static bool nrf52_errata_187(void) __UNUSED; 181 : : static bool nrf52_errata_189(void) __UNUSED; 182 : : static bool nrf52_errata_190(void) __UNUSED; 183 : : static bool nrf52_errata_191(void) __UNUSED; 184 : : static bool nrf52_errata_192(void) __UNUSED; 185 : : static bool nrf52_errata_193(void) __UNUSED; 186 : : static bool nrf52_errata_194(void) __UNUSED; 187 : : static bool nrf52_errata_195(void) __UNUSED; 188 : : static bool nrf52_errata_196(void) __UNUSED; 189 : : static bool nrf52_errata_197(void) __UNUSED; 190 : : static bool nrf52_errata_198(void) __UNUSED; 191 : : static bool nrf52_errata_199(void) __UNUSED; 192 : : static bool nrf52_errata_200(void) __UNUSED; 193 : : static bool nrf52_errata_201(void) __UNUSED; 194 : : static bool nrf52_errata_202(void) __UNUSED; 195 : : static bool nrf52_errata_204(void) __UNUSED; 196 : : static bool nrf52_errata_208(void) __UNUSED; 197 : : static bool nrf52_errata_209(void) __UNUSED; 198 : : static bool nrf52_errata_210(void) __UNUSED; 199 : : static bool nrf52_errata_211(void) __UNUSED; 200 : : static bool nrf52_errata_212(void) __UNUSED; 201 : : static bool nrf52_errata_213(void) __UNUSED; 202 : : static bool nrf52_errata_214(void) __UNUSED; 203 : : static bool nrf52_errata_215(void) __UNUSED; 204 : : static bool nrf52_errata_216(void) __UNUSED; 205 : : static bool nrf52_errata_217(void) __UNUSED; 206 : : static bool nrf52_errata_218(void) __UNUSED; 207 : : static bool nrf52_errata_219(void) __UNUSED; 208 : : static bool nrf52_errata_220(void) __UNUSED; 209 : : static bool nrf52_errata_223(void) __UNUSED; 210 : : static bool nrf52_errata_225(void) __UNUSED; 211 : : static bool nrf52_errata_228(void) __UNUSED; 212 : : static bool nrf52_errata_230(void) __UNUSED; 213 : : static bool nrf52_errata_231(void) __UNUSED; 214 : : static bool nrf52_errata_232(void) __UNUSED; 215 : : static bool nrf52_errata_233(void) __UNUSED; 216 : : static bool nrf52_errata_236(void) __UNUSED; 217 : : static bool nrf52_errata_237(void) __UNUSED; 218 : : static bool nrf52_errata_242(void) __UNUSED; 219 : : static bool nrf52_errata_243(void) __UNUSED; 220 : : static bool nrf52_errata_244(void) __UNUSED; 221 : : static bool nrf52_errata_245(void) __UNUSED; 222 : : static bool nrf52_errata_246(void) __UNUSED; 223 : : static bool nrf52_errata_248(void) __UNUSED; 224 : : static bool nrf52_configuration_249(void) __UNUSED; 225 : : static bool nrf52_errata_250(void) __UNUSED; 226 : : static bool nrf52_errata_251(void) __UNUSED; 227 : : static bool nrf52_errata_252(void) __UNUSED; 228 : : static bool nrf52_configuration_254(void) __UNUSED; 229 : : static bool nrf52_configuration_255(void) __UNUSED; 230 : : static bool nrf52_configuration_256(void) __UNUSED; 231 : : static bool nrf52_configuration_257(void) __UNUSED; 232 : : 233 : : /* ========= Errata 1 ========= */ 234 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 235 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 236 : : #define NRF52_ERRATA_1_PRESENT 1 237 : : #else 238 : : #define NRF52_ERRATA_1_PRESENT 0 239 : : #endif 240 : : 241 : : #ifndef NRF52_ERRATA_1_ENABLE_WORKAROUND 242 : : #define NRF52_ERRATA_1_ENABLE_WORKAROUND NRF52_ERRATA_1_PRESENT 243 : : #endif 244 : : 245 : 0 : static bool nrf52_errata_1(void) 246 : : { 247 : : #ifndef NRF52_SERIES 248 : 0 : return false; 249 : : #else 250 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 251 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 252 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 253 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 254 : : #endif 255 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 256 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 257 : : if (var1 == 0x06) 258 : : { 259 : : switch(var2) 260 : : { 261 : : case 0x03ul: 262 : : return true; 263 : : case 0x04ul: 264 : : return false; 265 : : case 0x05ul: 266 : : return false; 267 : : case 0x06ul: 268 : : return false; 269 : : case 0x07ul: 270 : : return false; 271 : : default: 272 : : return false; 273 : : } 274 : : } 275 : : #endif 276 : : return false; 277 : : #endif 278 : : } 279 : : 280 : : /* ========= Errata 2 ========= */ 281 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 282 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 283 : : #define NRF52_ERRATA_2_PRESENT 1 284 : : #else 285 : : #define NRF52_ERRATA_2_PRESENT 0 286 : : #endif 287 : : 288 : : #ifndef NRF52_ERRATA_2_ENABLE_WORKAROUND 289 : : #define NRF52_ERRATA_2_ENABLE_WORKAROUND NRF52_ERRATA_2_PRESENT 290 : : #endif 291 : : 292 : 0 : static bool nrf52_errata_2(void) 293 : : { 294 : : #ifndef NRF52_SERIES 295 : 0 : return false; 296 : : #else 297 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 298 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 299 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 300 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 301 : : #endif 302 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 303 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 304 : : if (var1 == 0x06) 305 : : { 306 : : switch(var2) 307 : : { 308 : : case 0x03ul: 309 : : return true; 310 : : case 0x04ul: 311 : : return false; 312 : : case 0x05ul: 313 : : return false; 314 : : case 0x06ul: 315 : : return false; 316 : : case 0x07ul: 317 : : return false; 318 : : default: 319 : : return false; 320 : : } 321 : : } 322 : : #endif 323 : : return false; 324 : : #endif 325 : : } 326 : : 327 : : /* ========= Errata 3 ========= */ 328 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 329 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 330 : : #define NRF52_ERRATA_3_PRESENT 1 331 : : #else 332 : : #define NRF52_ERRATA_3_PRESENT 0 333 : : #endif 334 : : 335 : : #ifndef NRF52_ERRATA_3_ENABLE_WORKAROUND 336 : : #define NRF52_ERRATA_3_ENABLE_WORKAROUND NRF52_ERRATA_3_PRESENT 337 : : #endif 338 : : 339 : 0 : static bool nrf52_errata_3(void) 340 : : { 341 : : #ifndef NRF52_SERIES 342 : 0 : return false; 343 : : #else 344 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 345 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 346 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 347 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 348 : : #endif 349 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 350 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 351 : : if (var1 == 0x06) 352 : : { 353 : : switch(var2) 354 : : { 355 : : case 0x03ul: 356 : : return true; 357 : : case 0x04ul: 358 : : return false; 359 : : case 0x05ul: 360 : : return false; 361 : : case 0x06ul: 362 : : return false; 363 : : case 0x07ul: 364 : : return false; 365 : : default: 366 : : return false; 367 : : } 368 : : } 369 : : #endif 370 : : return false; 371 : : #endif 372 : : } 373 : : 374 : : /* ========= Errata 4 ========= */ 375 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 376 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 377 : : #define NRF52_ERRATA_4_PRESENT 1 378 : : #else 379 : : #define NRF52_ERRATA_4_PRESENT 0 380 : : #endif 381 : : 382 : : #ifndef NRF52_ERRATA_4_ENABLE_WORKAROUND 383 : : #define NRF52_ERRATA_4_ENABLE_WORKAROUND NRF52_ERRATA_4_PRESENT 384 : : #endif 385 : : 386 : 0 : static bool nrf52_errata_4(void) 387 : : { 388 : : #ifndef NRF52_SERIES 389 : 0 : return false; 390 : : #else 391 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 392 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 393 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 394 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 395 : : #endif 396 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 397 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 398 : : if (var1 == 0x06) 399 : : { 400 : : switch(var2) 401 : : { 402 : : case 0x03ul: 403 : : return true; 404 : : case 0x04ul: 405 : : return false; 406 : : case 0x05ul: 407 : : return false; 408 : : case 0x06ul: 409 : : return false; 410 : : case 0x07ul: 411 : : return false; 412 : : default: 413 : : return false; 414 : : } 415 : : } 416 : : #endif 417 : : return false; 418 : : #endif 419 : : } 420 : : 421 : : /* ========= Errata 7 ========= */ 422 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 423 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 424 : : #define NRF52_ERRATA_7_PRESENT 1 425 : : #else 426 : : #define NRF52_ERRATA_7_PRESENT 0 427 : : #endif 428 : : 429 : : #ifndef NRF52_ERRATA_7_ENABLE_WORKAROUND 430 : : #define NRF52_ERRATA_7_ENABLE_WORKAROUND NRF52_ERRATA_7_PRESENT 431 : : #endif 432 : : 433 : 0 : static bool nrf52_errata_7(void) 434 : : { 435 : : #ifndef NRF52_SERIES 436 : 0 : return false; 437 : : #else 438 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 439 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 440 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 441 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 442 : : #endif 443 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 444 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 445 : : if (var1 == 0x06) 446 : : { 447 : : switch(var2) 448 : : { 449 : : case 0x03ul: 450 : : return true; 451 : : case 0x04ul: 452 : : return false; 453 : : case 0x05ul: 454 : : return false; 455 : : case 0x06ul: 456 : : return false; 457 : : case 0x07ul: 458 : : return false; 459 : : default: 460 : : return false; 461 : : } 462 : : } 463 : : #endif 464 : : return false; 465 : : #endif 466 : : } 467 : : 468 : : /* ========= Errata 8 ========= */ 469 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 470 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 471 : : #define NRF52_ERRATA_8_PRESENT 1 472 : : #else 473 : : #define NRF52_ERRATA_8_PRESENT 0 474 : : #endif 475 : : 476 : : #ifndef NRF52_ERRATA_8_ENABLE_WORKAROUND 477 : : #define NRF52_ERRATA_8_ENABLE_WORKAROUND NRF52_ERRATA_8_PRESENT 478 : : #endif 479 : : 480 : 0 : static bool nrf52_errata_8(void) 481 : : { 482 : : #ifndef NRF52_SERIES 483 : 0 : return false; 484 : : #else 485 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 486 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 487 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 488 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 489 : : #endif 490 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 491 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 492 : : if (var1 == 0x06) 493 : : { 494 : : switch(var2) 495 : : { 496 : : case 0x03ul: 497 : : return true; 498 : : case 0x04ul: 499 : : return false; 500 : : case 0x05ul: 501 : : return false; 502 : : case 0x06ul: 503 : : return false; 504 : : case 0x07ul: 505 : : return false; 506 : : default: 507 : : return false; 508 : : } 509 : : } 510 : : #endif 511 : : return false; 512 : : #endif 513 : : } 514 : : 515 : : /* ========= Errata 9 ========= */ 516 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 517 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 518 : : #define NRF52_ERRATA_9_PRESENT 1 519 : : #else 520 : : #define NRF52_ERRATA_9_PRESENT 0 521 : : #endif 522 : : 523 : : #ifndef NRF52_ERRATA_9_ENABLE_WORKAROUND 524 : : #define NRF52_ERRATA_9_ENABLE_WORKAROUND NRF52_ERRATA_9_PRESENT 525 : : #endif 526 : : 527 : 0 : static bool nrf52_errata_9(void) 528 : : { 529 : : #ifndef NRF52_SERIES 530 : 0 : return false; 531 : : #else 532 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 533 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 534 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 535 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 536 : : #endif 537 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 538 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 539 : : if (var1 == 0x06) 540 : : { 541 : : switch(var2) 542 : : { 543 : : case 0x03ul: 544 : : return true; 545 : : case 0x04ul: 546 : : return false; 547 : : case 0x05ul: 548 : : return false; 549 : : case 0x06ul: 550 : : return false; 551 : : case 0x07ul: 552 : : return false; 553 : : default: 554 : : return false; 555 : : } 556 : : } 557 : : #endif 558 : : return false; 559 : : #endif 560 : : } 561 : : 562 : : /* ========= Errata 10 ========= */ 563 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 564 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 565 : : #define NRF52_ERRATA_10_PRESENT 1 566 : : #else 567 : : #define NRF52_ERRATA_10_PRESENT 0 568 : : #endif 569 : : 570 : : #ifndef NRF52_ERRATA_10_ENABLE_WORKAROUND 571 : : #define NRF52_ERRATA_10_ENABLE_WORKAROUND NRF52_ERRATA_10_PRESENT 572 : : #endif 573 : : 574 : 0 : static bool nrf52_errata_10(void) 575 : : { 576 : : #ifndef NRF52_SERIES 577 : 0 : return false; 578 : : #else 579 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 580 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 581 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 582 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 583 : : #endif 584 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 585 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 586 : : if (var1 == 0x06) 587 : : { 588 : : switch(var2) 589 : : { 590 : : case 0x03ul: 591 : : return true; 592 : : case 0x04ul: 593 : : return false; 594 : : case 0x05ul: 595 : : return false; 596 : : case 0x06ul: 597 : : return false; 598 : : case 0x07ul: 599 : : return false; 600 : : default: 601 : : return false; 602 : : } 603 : : } 604 : : #endif 605 : : return false; 606 : : #endif 607 : : } 608 : : 609 : : /* ========= Errata 11 ========= */ 610 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 611 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 612 : : #define NRF52_ERRATA_11_PRESENT 1 613 : : #else 614 : : #define NRF52_ERRATA_11_PRESENT 0 615 : : #endif 616 : : 617 : : #ifndef NRF52_ERRATA_11_ENABLE_WORKAROUND 618 : : #define NRF52_ERRATA_11_ENABLE_WORKAROUND NRF52_ERRATA_11_PRESENT 619 : : #endif 620 : : 621 : 0 : static bool nrf52_errata_11(void) 622 : : { 623 : : #ifndef NRF52_SERIES 624 : 0 : return false; 625 : : #else 626 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 627 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 628 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 629 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 630 : : #endif 631 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 632 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 633 : : if (var1 == 0x06) 634 : : { 635 : : switch(var2) 636 : : { 637 : : case 0x03ul: 638 : : return true; 639 : : case 0x04ul: 640 : : return false; 641 : : case 0x05ul: 642 : : return false; 643 : : case 0x06ul: 644 : : return false; 645 : : case 0x07ul: 646 : : return false; 647 : : default: 648 : : return false; 649 : : } 650 : : } 651 : : #endif 652 : : return false; 653 : : #endif 654 : : } 655 : : 656 : : /* ========= Errata 12 ========= */ 657 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 658 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 659 : : #define NRF52_ERRATA_12_PRESENT 1 660 : : #else 661 : : #define NRF52_ERRATA_12_PRESENT 0 662 : : #endif 663 : : 664 : : #ifndef NRF52_ERRATA_12_ENABLE_WORKAROUND 665 : : #define NRF52_ERRATA_12_ENABLE_WORKAROUND NRF52_ERRATA_12_PRESENT 666 : : #endif 667 : : 668 : 0 : static bool nrf52_errata_12(void) 669 : : { 670 : : #ifndef NRF52_SERIES 671 : 0 : return false; 672 : : #else 673 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 674 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 675 : : uint32_t var1; 676 : : uint32_t var2; 677 : : 678 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 679 : : { 680 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 681 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 682 : : } 683 : : else 684 : : { 685 : : var1 = *(uint32_t *)0x10000130ul; 686 : : var2 = *(uint32_t *)0x10000134ul; 687 : : } 688 : : #endif 689 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 690 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 691 : : if (var1 == 0x06) 692 : : { 693 : : switch(var2) 694 : : { 695 : : case 0x03ul: 696 : : return true; 697 : : case 0x04ul: 698 : : return true; 699 : : case 0x05ul: 700 : : return true; 701 : : case 0x06ul: 702 : : return true; 703 : : case 0x07ul: 704 : : return true; 705 : : default: 706 : : return true; 707 : : } 708 : : } 709 : : #endif 710 : : return false; 711 : : #endif 712 : : } 713 : : 714 : : /* ========= Errata 15 ========= */ 715 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 716 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 717 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 718 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 719 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 720 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 721 : : #define NRF52_ERRATA_15_PRESENT 1 722 : : #else 723 : : #define NRF52_ERRATA_15_PRESENT 0 724 : : #endif 725 : : 726 : : #ifndef NRF52_ERRATA_15_ENABLE_WORKAROUND 727 : : #define NRF52_ERRATA_15_ENABLE_WORKAROUND NRF52_ERRATA_15_PRESENT 728 : : #endif 729 : : 730 : 0 : static bool nrf52_errata_15(void) 731 : : { 732 : : #ifndef NRF52_SERIES 733 : 0 : return false; 734 : : #else 735 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 736 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 737 : : uint32_t var1; 738 : : uint32_t var2; 739 : : 740 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 741 : : { 742 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 743 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 744 : : } 745 : : else 746 : : { 747 : : var1 = *(uint32_t *)0x10000130ul; 748 : : var2 = *(uint32_t *)0x10000134ul; 749 : : } 750 : : #elif defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 751 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 752 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 753 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 754 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 755 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 756 : : #endif 757 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 758 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 759 : : if (var1 == 0x06) 760 : : { 761 : : switch(var2) 762 : : { 763 : : case 0x03ul: 764 : : return true; 765 : : case 0x04ul: 766 : : return true; 767 : : case 0x05ul: 768 : : return true; 769 : : case 0x06ul: 770 : : return true; 771 : : case 0x07ul: 772 : : return true; 773 : : default: 774 : : return true; 775 : : } 776 : : } 777 : : #endif 778 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 779 : : if (var1 == 0x08) 780 : : { 781 : : switch(var2) 782 : : { 783 : : case 0x00ul: 784 : : return true; 785 : : case 0x01ul: 786 : : return false; 787 : : case 0x02ul: 788 : : return false; 789 : : case 0x03ul: 790 : : return false; 791 : : case 0x04ul: 792 : : return false; 793 : : case 0x05ul: 794 : : return false; 795 : : default: 796 : : return false; 797 : : } 798 : : } 799 : : #endif 800 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 801 : : if (var1 == 0x0A) 802 : : { 803 : : switch(var2) 804 : : { 805 : : case 0x00ul: 806 : : return true; 807 : : case 0x01ul: 808 : : return true; 809 : : case 0x02ul: 810 : : return true; 811 : : default: 812 : : return true; 813 : : } 814 : : } 815 : : #endif 816 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 817 : : if (var1 == 0x0E) 818 : : { 819 : : switch(var2) 820 : : { 821 : : case 0x00ul: 822 : : return true; 823 : : case 0x01ul: 824 : : return true; 825 : : default: 826 : : return true; 827 : : } 828 : : } 829 : : #endif 830 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 831 : : if (var1 == 0x0F) 832 : : { 833 : : switch(var2) 834 : : { 835 : : case 0x00ul: 836 : : return true; 837 : : case 0x01ul: 838 : : return true; 839 : : default: 840 : : return true; 841 : : } 842 : : } 843 : : #endif 844 : : return false; 845 : : #endif 846 : : } 847 : : 848 : : /* ========= Errata 16 ========= */ 849 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 850 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 851 : : #define NRF52_ERRATA_16_PRESENT 1 852 : : #else 853 : : #define NRF52_ERRATA_16_PRESENT 0 854 : : #endif 855 : : 856 : : #ifndef NRF52_ERRATA_16_ENABLE_WORKAROUND 857 : : #define NRF52_ERRATA_16_ENABLE_WORKAROUND NRF52_ERRATA_16_PRESENT 858 : : #endif 859 : : 860 : 0 : static bool nrf52_errata_16(void) 861 : : { 862 : : #ifndef NRF52_SERIES 863 : 0 : return false; 864 : : #else 865 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 866 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 867 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 868 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 869 : : #endif 870 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 871 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 872 : : if (var1 == 0x06) 873 : : { 874 : : switch(var2) 875 : : { 876 : : case 0x03ul: 877 : : return true; 878 : : case 0x04ul: 879 : : return false; 880 : : case 0x05ul: 881 : : return false; 882 : : case 0x06ul: 883 : : return false; 884 : : case 0x07ul: 885 : : return false; 886 : : default: 887 : : return false; 888 : : } 889 : : } 890 : : #endif 891 : : return false; 892 : : #endif 893 : : } 894 : : 895 : : /* ========= Errata 17 ========= */ 896 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 897 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 898 : : #define NRF52_ERRATA_17_PRESENT 1 899 : : #else 900 : : #define NRF52_ERRATA_17_PRESENT 0 901 : : #endif 902 : : 903 : : #ifndef NRF52_ERRATA_17_ENABLE_WORKAROUND 904 : : #define NRF52_ERRATA_17_ENABLE_WORKAROUND NRF52_ERRATA_17_PRESENT 905 : : #endif 906 : : 907 : 0 : static bool nrf52_errata_17(void) 908 : : { 909 : : #ifndef NRF52_SERIES 910 : 0 : return false; 911 : : #else 912 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 913 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 914 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 915 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 916 : : #endif 917 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 918 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 919 : : if (var1 == 0x06) 920 : : { 921 : : switch(var2) 922 : : { 923 : : case 0x03ul: 924 : : return true; 925 : : case 0x04ul: 926 : : return false; 927 : : case 0x05ul: 928 : : return false; 929 : : case 0x06ul: 930 : : return false; 931 : : case 0x07ul: 932 : : return false; 933 : : default: 934 : : return false; 935 : : } 936 : : } 937 : : #endif 938 : : return false; 939 : : #endif 940 : : } 941 : : 942 : : /* ========= Errata 20 ========= */ 943 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 944 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 945 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 946 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 947 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 948 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 949 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 950 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 951 : : #define NRF52_ERRATA_20_PRESENT 1 952 : : #else 953 : : #define NRF52_ERRATA_20_PRESENT 0 954 : : #endif 955 : : 956 : : #ifndef NRF52_ERRATA_20_ENABLE_WORKAROUND 957 : : #define NRF52_ERRATA_20_ENABLE_WORKAROUND NRF52_ERRATA_20_PRESENT 958 : : #endif 959 : : 960 : 0 : static bool nrf52_errata_20(void) 961 : : { 962 : : #ifndef NRF52_SERIES 963 : 0 : return false; 964 : : #else 965 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 966 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 967 : : uint32_t var1; 968 : : uint32_t var2; 969 : : 970 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 971 : : { 972 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 973 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 974 : : } 975 : : else 976 : : { 977 : : var1 = *(uint32_t *)0x10000130ul; 978 : : var2 = *(uint32_t *)0x10000134ul; 979 : : } 980 : : #elif defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 981 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 982 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 983 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 984 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 985 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 986 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 987 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 988 : : #endif 989 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 990 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 991 : : if (var1 == 0x06) 992 : : { 993 : : switch(var2) 994 : : { 995 : : case 0x03ul: 996 : : return true; 997 : : case 0x04ul: 998 : : return true; 999 : : case 0x05ul: 1000 : : return true; 1001 : : case 0x06ul: 1002 : : return true; 1003 : : case 0x07ul: 1004 : : return true; 1005 : : default: 1006 : : return true; 1007 : : } 1008 : : } 1009 : : #endif 1010 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 1011 : : if (var1 == 0x08) 1012 : : { 1013 : : switch(var2) 1014 : : { 1015 : : case 0x00ul: 1016 : : return true; 1017 : : case 0x01ul: 1018 : : return true; 1019 : : case 0x02ul: 1020 : : return true; 1021 : : case 0x03ul: 1022 : : return true; 1023 : : case 0x04ul: 1024 : : return true; 1025 : : case 0x05ul: 1026 : : return true; 1027 : : default: 1028 : : return true; 1029 : : } 1030 : : } 1031 : : #endif 1032 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 1033 : : if (var1 == 0x0A) 1034 : : { 1035 : : switch(var2) 1036 : : { 1037 : : case 0x00ul: 1038 : : return true; 1039 : : case 0x01ul: 1040 : : return true; 1041 : : case 0x02ul: 1042 : : return true; 1043 : : default: 1044 : : return true; 1045 : : } 1046 : : } 1047 : : #endif 1048 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 1049 : : if (var1 == 0x0D) 1050 : : { 1051 : : switch(var2) 1052 : : { 1053 : : case 0x00ul: 1054 : : return true; 1055 : : case 0x01ul: 1056 : : return true; 1057 : : default: 1058 : : return true; 1059 : : } 1060 : : } 1061 : : #endif 1062 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 1063 : : if (var1 == 0x0E) 1064 : : { 1065 : : switch(var2) 1066 : : { 1067 : : case 0x00ul: 1068 : : return true; 1069 : : case 0x01ul: 1070 : : return true; 1071 : : default: 1072 : : return true; 1073 : : } 1074 : : } 1075 : : #endif 1076 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 1077 : : if (var1 == 0x0F) 1078 : : { 1079 : : switch(var2) 1080 : : { 1081 : : case 0x00ul: 1082 : : return true; 1083 : : case 0x01ul: 1084 : : return true; 1085 : : default: 1086 : : return true; 1087 : : } 1088 : : } 1089 : : #endif 1090 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 1091 : : if (var1 == 0x10) 1092 : : { 1093 : : switch(var2) 1094 : : { 1095 : : case 0x00ul: 1096 : : return true; 1097 : : case 0x01ul: 1098 : : return true; 1099 : : case 0x02ul: 1100 : : return true; 1101 : : case 0x03ul: 1102 : : return true; 1103 : : default: 1104 : : return true; 1105 : : } 1106 : : } 1107 : : #endif 1108 : : return false; 1109 : : #endif 1110 : : } 1111 : : 1112 : : /* ========= Errata 23 ========= */ 1113 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 1114 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1115 : : #define NRF52_ERRATA_23_PRESENT 1 1116 : : #else 1117 : : #define NRF52_ERRATA_23_PRESENT 0 1118 : : #endif 1119 : : 1120 : : #ifndef NRF52_ERRATA_23_ENABLE_WORKAROUND 1121 : : #define NRF52_ERRATA_23_ENABLE_WORKAROUND NRF52_ERRATA_23_PRESENT 1122 : : #endif 1123 : : 1124 : 0 : static bool nrf52_errata_23(void) 1125 : : { 1126 : : #ifndef NRF52_SERIES 1127 : 0 : return false; 1128 : : #else 1129 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1130 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1131 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 1132 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 1133 : : #endif 1134 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1135 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1136 : : if (var1 == 0x06) 1137 : : { 1138 : : switch(var2) 1139 : : { 1140 : : case 0x03ul: 1141 : : return true; 1142 : : case 0x04ul: 1143 : : return false; 1144 : : case 0x05ul: 1145 : : return false; 1146 : : case 0x06ul: 1147 : : return false; 1148 : : case 0x07ul: 1149 : : return false; 1150 : : default: 1151 : : return false; 1152 : : } 1153 : : } 1154 : : #endif 1155 : : return false; 1156 : : #endif 1157 : : } 1158 : : 1159 : : /* ========= Errata 24 ========= */ 1160 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 1161 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1162 : : #define NRF52_ERRATA_24_PRESENT 1 1163 : : #else 1164 : : #define NRF52_ERRATA_24_PRESENT 0 1165 : : #endif 1166 : : 1167 : : #ifndef NRF52_ERRATA_24_ENABLE_WORKAROUND 1168 : : #define NRF52_ERRATA_24_ENABLE_WORKAROUND NRF52_ERRATA_24_PRESENT 1169 : : #endif 1170 : : 1171 : 0 : static bool nrf52_errata_24(void) 1172 : : { 1173 : : #ifndef NRF52_SERIES 1174 : 0 : return false; 1175 : : #else 1176 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1177 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1178 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 1179 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 1180 : : #endif 1181 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1182 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1183 : : if (var1 == 0x06) 1184 : : { 1185 : : switch(var2) 1186 : : { 1187 : : case 0x03ul: 1188 : : return true; 1189 : : case 0x04ul: 1190 : : return false; 1191 : : case 0x05ul: 1192 : : return false; 1193 : : case 0x06ul: 1194 : : return false; 1195 : : case 0x07ul: 1196 : : return false; 1197 : : default: 1198 : : return false; 1199 : : } 1200 : : } 1201 : : #endif 1202 : : return false; 1203 : : #endif 1204 : : } 1205 : : 1206 : : /* ========= Errata 25 ========= */ 1207 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 1208 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1209 : : #define NRF52_ERRATA_25_PRESENT 1 1210 : : #else 1211 : : #define NRF52_ERRATA_25_PRESENT 0 1212 : : #endif 1213 : : 1214 : : #ifndef NRF52_ERRATA_25_ENABLE_WORKAROUND 1215 : : #define NRF52_ERRATA_25_ENABLE_WORKAROUND NRF52_ERRATA_25_PRESENT 1216 : : #endif 1217 : : 1218 : 0 : static bool nrf52_errata_25(void) 1219 : : { 1220 : : #ifndef NRF52_SERIES 1221 : 0 : return false; 1222 : : #else 1223 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1224 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1225 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 1226 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 1227 : : #endif 1228 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1229 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1230 : : if (var1 == 0x06) 1231 : : { 1232 : : switch(var2) 1233 : : { 1234 : : case 0x03ul: 1235 : : return true; 1236 : : case 0x04ul: 1237 : : return false; 1238 : : case 0x05ul: 1239 : : return false; 1240 : : case 0x06ul: 1241 : : return false; 1242 : : case 0x07ul: 1243 : : return false; 1244 : : default: 1245 : : return false; 1246 : : } 1247 : : } 1248 : : #endif 1249 : : return false; 1250 : : #endif 1251 : : } 1252 : : 1253 : : /* ========= Errata 26 ========= */ 1254 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 1255 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1256 : : #define NRF52_ERRATA_26_PRESENT 1 1257 : : #else 1258 : : #define NRF52_ERRATA_26_PRESENT 0 1259 : : #endif 1260 : : 1261 : : #ifndef NRF52_ERRATA_26_ENABLE_WORKAROUND 1262 : : #define NRF52_ERRATA_26_ENABLE_WORKAROUND NRF52_ERRATA_26_PRESENT 1263 : : #endif 1264 : : 1265 : 0 : static bool nrf52_errata_26(void) 1266 : : { 1267 : : #ifndef NRF52_SERIES 1268 : 0 : return false; 1269 : : #else 1270 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1271 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1272 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 1273 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 1274 : : #endif 1275 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1276 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1277 : : if (var1 == 0x06) 1278 : : { 1279 : : switch(var2) 1280 : : { 1281 : : case 0x03ul: 1282 : : return true; 1283 : : case 0x04ul: 1284 : : return false; 1285 : : case 0x05ul: 1286 : : return false; 1287 : : case 0x06ul: 1288 : : return false; 1289 : : case 0x07ul: 1290 : : return false; 1291 : : default: 1292 : : return false; 1293 : : } 1294 : : } 1295 : : #endif 1296 : : return false; 1297 : : #endif 1298 : : } 1299 : : 1300 : : /* ========= Errata 27 ========= */ 1301 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 1302 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1303 : : #define NRF52_ERRATA_27_PRESENT 1 1304 : : #else 1305 : : #define NRF52_ERRATA_27_PRESENT 0 1306 : : #endif 1307 : : 1308 : : #ifndef NRF52_ERRATA_27_ENABLE_WORKAROUND 1309 : : #define NRF52_ERRATA_27_ENABLE_WORKAROUND NRF52_ERRATA_27_PRESENT 1310 : : #endif 1311 : : 1312 : 0 : static bool nrf52_errata_27(void) 1313 : : { 1314 : : #ifndef NRF52_SERIES 1315 : 0 : return false; 1316 : : #else 1317 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1318 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1319 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 1320 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 1321 : : #endif 1322 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1323 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1324 : : if (var1 == 0x06) 1325 : : { 1326 : : switch(var2) 1327 : : { 1328 : : case 0x03ul: 1329 : : return true; 1330 : : case 0x04ul: 1331 : : return false; 1332 : : case 0x05ul: 1333 : : return false; 1334 : : case 0x06ul: 1335 : : return false; 1336 : : case 0x07ul: 1337 : : return false; 1338 : : default: 1339 : : return false; 1340 : : } 1341 : : } 1342 : : #endif 1343 : : return false; 1344 : : #endif 1345 : : } 1346 : : 1347 : : /* ========= Errata 28 ========= */ 1348 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 1349 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1350 : : #define NRF52_ERRATA_28_PRESENT 1 1351 : : #else 1352 : : #define NRF52_ERRATA_28_PRESENT 0 1353 : : #endif 1354 : : 1355 : : #ifndef NRF52_ERRATA_28_ENABLE_WORKAROUND 1356 : : #define NRF52_ERRATA_28_ENABLE_WORKAROUND NRF52_ERRATA_28_PRESENT 1357 : : #endif 1358 : : 1359 : 0 : static bool nrf52_errata_28(void) 1360 : : { 1361 : : #ifndef NRF52_SERIES 1362 : 0 : return false; 1363 : : #else 1364 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1365 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1366 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 1367 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 1368 : : #endif 1369 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1370 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1371 : : if (var1 == 0x06) 1372 : : { 1373 : : switch(var2) 1374 : : { 1375 : : case 0x03ul: 1376 : : return true; 1377 : : case 0x04ul: 1378 : : return false; 1379 : : case 0x05ul: 1380 : : return false; 1381 : : case 0x06ul: 1382 : : return false; 1383 : : case 0x07ul: 1384 : : return false; 1385 : : default: 1386 : : return false; 1387 : : } 1388 : : } 1389 : : #endif 1390 : : return false; 1391 : : #endif 1392 : : } 1393 : : 1394 : : /* ========= Errata 29 ========= */ 1395 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 1396 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1397 : : #define NRF52_ERRATA_29_PRESENT 1 1398 : : #else 1399 : : #define NRF52_ERRATA_29_PRESENT 0 1400 : : #endif 1401 : : 1402 : : #ifndef NRF52_ERRATA_29_ENABLE_WORKAROUND 1403 : : #define NRF52_ERRATA_29_ENABLE_WORKAROUND NRF52_ERRATA_29_PRESENT 1404 : : #endif 1405 : : 1406 : 0 : static bool nrf52_errata_29(void) 1407 : : { 1408 : : #ifndef NRF52_SERIES 1409 : 0 : return false; 1410 : : #else 1411 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1412 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1413 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 1414 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 1415 : : #endif 1416 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1417 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1418 : : if (var1 == 0x06) 1419 : : { 1420 : : switch(var2) 1421 : : { 1422 : : case 0x03ul: 1423 : : return true; 1424 : : case 0x04ul: 1425 : : return false; 1426 : : case 0x05ul: 1427 : : return false; 1428 : : case 0x06ul: 1429 : : return false; 1430 : : case 0x07ul: 1431 : : return false; 1432 : : default: 1433 : : return false; 1434 : : } 1435 : : } 1436 : : #endif 1437 : : return false; 1438 : : #endif 1439 : : } 1440 : : 1441 : : /* ========= Errata 30 ========= */ 1442 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 1443 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1444 : : #define NRF52_ERRATA_30_PRESENT 1 1445 : : #else 1446 : : #define NRF52_ERRATA_30_PRESENT 0 1447 : : #endif 1448 : : 1449 : : #ifndef NRF52_ERRATA_30_ENABLE_WORKAROUND 1450 : : #define NRF52_ERRATA_30_ENABLE_WORKAROUND NRF52_ERRATA_30_PRESENT 1451 : : #endif 1452 : : 1453 : 0 : static bool nrf52_errata_30(void) 1454 : : { 1455 : : #ifndef NRF52_SERIES 1456 : 0 : return false; 1457 : : #else 1458 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1459 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1460 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 1461 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 1462 : : #endif 1463 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1464 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1465 : : if (var1 == 0x06) 1466 : : { 1467 : : switch(var2) 1468 : : { 1469 : : case 0x03ul: 1470 : : return true; 1471 : : case 0x04ul: 1472 : : return false; 1473 : : case 0x05ul: 1474 : : return false; 1475 : : case 0x06ul: 1476 : : return false; 1477 : : case 0x07ul: 1478 : : return false; 1479 : : default: 1480 : : return false; 1481 : : } 1482 : : } 1483 : : #endif 1484 : : return false; 1485 : : #endif 1486 : : } 1487 : : 1488 : : /* ========= Errata 31 ========= */ 1489 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 1490 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 1491 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 1492 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 1493 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1494 : : #define NRF52_ERRATA_31_PRESENT 1 1495 : : #else 1496 : : #define NRF52_ERRATA_31_PRESENT 0 1497 : : #endif 1498 : : 1499 : : #ifndef NRF52_ERRATA_31_ENABLE_WORKAROUND 1500 : : #define NRF52_ERRATA_31_ENABLE_WORKAROUND NRF52_ERRATA_31_PRESENT 1501 : : #endif 1502 : : 1503 : 0 : static bool nrf52_errata_31(void) 1504 : : { 1505 : : #ifndef NRF52_SERIES 1506 : 0 : return false; 1507 : : #else 1508 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1509 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1510 : : uint32_t var1; 1511 : : uint32_t var2; 1512 : : 1513 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 1514 : : { 1515 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 1516 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 1517 : : } 1518 : : else 1519 : : { 1520 : : var1 = *(uint32_t *)0x10000130ul; 1521 : : var2 = *(uint32_t *)0x10000134ul; 1522 : : } 1523 : : #elif defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 1524 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 1525 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 1526 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 1527 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 1528 : : #endif 1529 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1530 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1531 : : if (var1 == 0x06) 1532 : : { 1533 : : switch(var2) 1534 : : { 1535 : : case 0x03ul: 1536 : : return true; 1537 : : case 0x04ul: 1538 : : return true; 1539 : : case 0x05ul: 1540 : : return true; 1541 : : case 0x06ul: 1542 : : return true; 1543 : : case 0x07ul: 1544 : : return true; 1545 : : default: 1546 : : return true; 1547 : : } 1548 : : } 1549 : : #endif 1550 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 1551 : : if (var1 == 0x0A) 1552 : : { 1553 : : switch(var2) 1554 : : { 1555 : : case 0x00ul: 1556 : : return true; 1557 : : case 0x01ul: 1558 : : return true; 1559 : : case 0x02ul: 1560 : : return true; 1561 : : default: 1562 : : return true; 1563 : : } 1564 : : } 1565 : : #endif 1566 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 1567 : : if (var1 == 0x0E) 1568 : : { 1569 : : switch(var2) 1570 : : { 1571 : : case 0x00ul: 1572 : : return true; 1573 : : case 0x01ul: 1574 : : return true; 1575 : : default: 1576 : : return true; 1577 : : } 1578 : : } 1579 : : #endif 1580 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 1581 : : if (var1 == 0x0F) 1582 : : { 1583 : : switch(var2) 1584 : : { 1585 : : case 0x00ul: 1586 : : return true; 1587 : : case 0x01ul: 1588 : : return true; 1589 : : default: 1590 : : return true; 1591 : : } 1592 : : } 1593 : : #endif 1594 : : return false; 1595 : : #endif 1596 : : } 1597 : : 1598 : : /* ========= Errata 32 ========= */ 1599 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 1600 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1601 : : #define NRF52_ERRATA_32_PRESENT 1 1602 : : #else 1603 : : #define NRF52_ERRATA_32_PRESENT 0 1604 : : #endif 1605 : : 1606 : : #ifndef NRF52_ERRATA_32_ENABLE_WORKAROUND 1607 : : #define NRF52_ERRATA_32_ENABLE_WORKAROUND NRF52_ERRATA_32_PRESENT 1608 : : #endif 1609 : : 1610 : 0 : static bool nrf52_errata_32(void) 1611 : : { 1612 : : #ifndef NRF52_SERIES 1613 : 0 : return false; 1614 : : #else 1615 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1616 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1617 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 1618 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 1619 : : #endif 1620 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1621 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1622 : : if (var1 == 0x06) 1623 : : { 1624 : : switch(var2) 1625 : : { 1626 : : case 0x03ul: 1627 : : return true; 1628 : : case 0x04ul: 1629 : : return false; 1630 : : case 0x05ul: 1631 : : return false; 1632 : : case 0x06ul: 1633 : : return false; 1634 : : case 0x07ul: 1635 : : return false; 1636 : : default: 1637 : : return false; 1638 : : } 1639 : : } 1640 : : #endif 1641 : : return false; 1642 : : #endif 1643 : : } 1644 : : 1645 : : /* ========= Errata 33 ========= */ 1646 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 1647 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1648 : : #define NRF52_ERRATA_33_PRESENT 1 1649 : : #else 1650 : : #define NRF52_ERRATA_33_PRESENT 0 1651 : : #endif 1652 : : 1653 : : #ifndef NRF52_ERRATA_33_ENABLE_WORKAROUND 1654 : : #define NRF52_ERRATA_33_ENABLE_WORKAROUND NRF52_ERRATA_33_PRESENT 1655 : : #endif 1656 : : 1657 : 0 : static bool nrf52_errata_33(void) 1658 : : { 1659 : : #ifndef NRF52_SERIES 1660 : 0 : return false; 1661 : : #else 1662 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1663 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1664 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 1665 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 1666 : : #endif 1667 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1668 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1669 : : if (var1 == 0x06) 1670 : : { 1671 : : switch(var2) 1672 : : { 1673 : : case 0x03ul: 1674 : : return true; 1675 : : case 0x04ul: 1676 : : return false; 1677 : : case 0x05ul: 1678 : : return false; 1679 : : case 0x06ul: 1680 : : return false; 1681 : : case 0x07ul: 1682 : : return false; 1683 : : default: 1684 : : return false; 1685 : : } 1686 : : } 1687 : : #endif 1688 : : return false; 1689 : : #endif 1690 : : } 1691 : : 1692 : : /* ========= Errata 34 ========= */ 1693 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 1694 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1695 : : #define NRF52_ERRATA_34_PRESENT 1 1696 : : #else 1697 : : #define NRF52_ERRATA_34_PRESENT 0 1698 : : #endif 1699 : : 1700 : : #ifndef NRF52_ERRATA_34_ENABLE_WORKAROUND 1701 : : #define NRF52_ERRATA_34_ENABLE_WORKAROUND NRF52_ERRATA_34_PRESENT 1702 : : #endif 1703 : : 1704 : 0 : static bool nrf52_errata_34(void) 1705 : : { 1706 : : #ifndef NRF52_SERIES 1707 : 0 : return false; 1708 : : #else 1709 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1710 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1711 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 1712 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 1713 : : #endif 1714 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1715 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1716 : : if (var1 == 0x06) 1717 : : { 1718 : : switch(var2) 1719 : : { 1720 : : case 0x03ul: 1721 : : return true; 1722 : : case 0x04ul: 1723 : : return false; 1724 : : case 0x05ul: 1725 : : return false; 1726 : : case 0x06ul: 1727 : : return false; 1728 : : case 0x07ul: 1729 : : return false; 1730 : : default: 1731 : : return false; 1732 : : } 1733 : : } 1734 : : #endif 1735 : : return false; 1736 : : #endif 1737 : : } 1738 : : 1739 : : /* ========= Errata 35 ========= */ 1740 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 1741 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1742 : : #define NRF52_ERRATA_35_PRESENT 1 1743 : : #else 1744 : : #define NRF52_ERRATA_35_PRESENT 0 1745 : : #endif 1746 : : 1747 : : #ifndef NRF52_ERRATA_35_ENABLE_WORKAROUND 1748 : : #define NRF52_ERRATA_35_ENABLE_WORKAROUND NRF52_ERRATA_35_PRESENT 1749 : : #endif 1750 : : 1751 : 0 : static bool nrf52_errata_35(void) 1752 : : { 1753 : : #ifndef NRF52_SERIES 1754 : 0 : return false; 1755 : : #else 1756 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1757 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1758 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 1759 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 1760 : : #endif 1761 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1762 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1763 : : if (var1 == 0x06) 1764 : : { 1765 : : switch(var2) 1766 : : { 1767 : : case 0x03ul: 1768 : : return true; 1769 : : case 0x04ul: 1770 : : return false; 1771 : : case 0x05ul: 1772 : : return false; 1773 : : case 0x06ul: 1774 : : return false; 1775 : : case 0x07ul: 1776 : : return false; 1777 : : default: 1778 : : return false; 1779 : : } 1780 : : } 1781 : : #endif 1782 : : return false; 1783 : : #endif 1784 : : } 1785 : : 1786 : : /* ========= Errata 36 ========= */ 1787 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 1788 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 1789 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 1790 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 1791 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 1792 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 1793 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 1794 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 1795 : : #define NRF52_ERRATA_36_PRESENT 1 1796 : : #else 1797 : : #define NRF52_ERRATA_36_PRESENT 0 1798 : : #endif 1799 : : 1800 : : #ifndef NRF52_ERRATA_36_ENABLE_WORKAROUND 1801 : : #define NRF52_ERRATA_36_ENABLE_WORKAROUND NRF52_ERRATA_36_PRESENT 1802 : : #endif 1803 : : 1804 : 0 : static bool nrf52_errata_36(void) 1805 : : { 1806 : : #ifndef NRF52_SERIES 1807 : 0 : return false; 1808 : : #else 1809 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1810 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1811 : : uint32_t var1; 1812 : : uint32_t var2; 1813 : : 1814 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 1815 : : { 1816 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 1817 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 1818 : : } 1819 : : else 1820 : : { 1821 : : var1 = *(uint32_t *)0x10000130ul; 1822 : : var2 = *(uint32_t *)0x10000134ul; 1823 : : } 1824 : : #elif defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 1825 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 1826 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 1827 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 1828 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 1829 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 1830 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 1831 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 1832 : : #endif 1833 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1834 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1835 : : if (var1 == 0x06) 1836 : : { 1837 : : switch(var2) 1838 : : { 1839 : : case 0x03ul: 1840 : : return true; 1841 : : case 0x04ul: 1842 : : return true; 1843 : : case 0x05ul: 1844 : : return true; 1845 : : case 0x06ul: 1846 : : return true; 1847 : : case 0x07ul: 1848 : : return true; 1849 : : default: 1850 : : return true; 1851 : : } 1852 : : } 1853 : : #endif 1854 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 1855 : : if (var1 == 0x08) 1856 : : { 1857 : : switch(var2) 1858 : : { 1859 : : case 0x00ul: 1860 : : return true; 1861 : : case 0x01ul: 1862 : : return true; 1863 : : case 0x02ul: 1864 : : return true; 1865 : : case 0x03ul: 1866 : : return true; 1867 : : case 0x04ul: 1868 : : return true; 1869 : : case 0x05ul: 1870 : : return true; 1871 : : default: 1872 : : return true; 1873 : : } 1874 : : } 1875 : : #endif 1876 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 1877 : : if (var1 == 0x0A) 1878 : : { 1879 : : switch(var2) 1880 : : { 1881 : : case 0x00ul: 1882 : : return true; 1883 : : case 0x01ul: 1884 : : return true; 1885 : : case 0x02ul: 1886 : : return true; 1887 : : default: 1888 : : return true; 1889 : : } 1890 : : } 1891 : : #endif 1892 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 1893 : : if (var1 == 0x0D) 1894 : : { 1895 : : switch(var2) 1896 : : { 1897 : : case 0x00ul: 1898 : : return true; 1899 : : case 0x01ul: 1900 : : return true; 1901 : : default: 1902 : : return true; 1903 : : } 1904 : : } 1905 : : #endif 1906 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 1907 : : if (var1 == 0x0E) 1908 : : { 1909 : : switch(var2) 1910 : : { 1911 : : case 0x00ul: 1912 : : return true; 1913 : : case 0x01ul: 1914 : : return true; 1915 : : default: 1916 : : return true; 1917 : : } 1918 : : } 1919 : : #endif 1920 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 1921 : : if (var1 == 0x0F) 1922 : : { 1923 : : switch(var2) 1924 : : { 1925 : : case 0x00ul: 1926 : : return true; 1927 : : case 0x01ul: 1928 : : return true; 1929 : : default: 1930 : : return true; 1931 : : } 1932 : : } 1933 : : #endif 1934 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 1935 : : if (var1 == 0x10) 1936 : : { 1937 : : switch(var2) 1938 : : { 1939 : : case 0x00ul: 1940 : : return true; 1941 : : case 0x01ul: 1942 : : return true; 1943 : : case 0x02ul: 1944 : : return true; 1945 : : case 0x03ul: 1946 : : return true; 1947 : : default: 1948 : : return true; 1949 : : } 1950 : : } 1951 : : #endif 1952 : : return false; 1953 : : #endif 1954 : : } 1955 : : 1956 : : /* ========= Errata 37 ========= */ 1957 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 1958 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1959 : : #define NRF52_ERRATA_37_PRESENT 1 1960 : : #else 1961 : : #define NRF52_ERRATA_37_PRESENT 0 1962 : : #endif 1963 : : 1964 : : #ifndef NRF52_ERRATA_37_ENABLE_WORKAROUND 1965 : : #define NRF52_ERRATA_37_ENABLE_WORKAROUND NRF52_ERRATA_37_PRESENT 1966 : : #endif 1967 : : 1968 : 0 : static bool nrf52_errata_37(void) 1969 : : { 1970 : : #ifndef NRF52_SERIES 1971 : 0 : return false; 1972 : : #else 1973 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1974 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1975 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 1976 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 1977 : : #endif 1978 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 1979 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 1980 : : if (var1 == 0x06) 1981 : : { 1982 : : switch(var2) 1983 : : { 1984 : : case 0x03ul: 1985 : : return true; 1986 : : case 0x04ul: 1987 : : return false; 1988 : : case 0x05ul: 1989 : : return false; 1990 : : case 0x06ul: 1991 : : return false; 1992 : : case 0x07ul: 1993 : : return false; 1994 : : default: 1995 : : return false; 1996 : : } 1997 : : } 1998 : : #endif 1999 : : return false; 2000 : : #endif 2001 : : } 2002 : : 2003 : : /* ========= Errata 38 ========= */ 2004 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 2005 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2006 : : #define NRF52_ERRATA_38_PRESENT 1 2007 : : #else 2008 : : #define NRF52_ERRATA_38_PRESENT 0 2009 : : #endif 2010 : : 2011 : : #ifndef NRF52_ERRATA_38_ENABLE_WORKAROUND 2012 : : #define NRF52_ERRATA_38_ENABLE_WORKAROUND NRF52_ERRATA_38_PRESENT 2013 : : #endif 2014 : : 2015 : 0 : static bool nrf52_errata_38(void) 2016 : : { 2017 : : #ifndef NRF52_SERIES 2018 : 0 : return false; 2019 : : #else 2020 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2021 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2022 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 2023 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 2024 : : #endif 2025 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2026 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2027 : : if (var1 == 0x06) 2028 : : { 2029 : : switch(var2) 2030 : : { 2031 : : case 0x03ul: 2032 : : return true; 2033 : : case 0x04ul: 2034 : : return false; 2035 : : case 0x05ul: 2036 : : return false; 2037 : : case 0x06ul: 2038 : : return false; 2039 : : case 0x07ul: 2040 : : return false; 2041 : : default: 2042 : : return false; 2043 : : } 2044 : : } 2045 : : #endif 2046 : : return false; 2047 : : #endif 2048 : : } 2049 : : 2050 : : /* ========= Errata 39 ========= */ 2051 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 2052 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2053 : : #define NRF52_ERRATA_39_PRESENT 1 2054 : : #else 2055 : : #define NRF52_ERRATA_39_PRESENT 0 2056 : : #endif 2057 : : 2058 : : #ifndef NRF52_ERRATA_39_ENABLE_WORKAROUND 2059 : : #define NRF52_ERRATA_39_ENABLE_WORKAROUND NRF52_ERRATA_39_PRESENT 2060 : : #endif 2061 : : 2062 : 0 : static bool nrf52_errata_39(void) 2063 : : { 2064 : : #ifndef NRF52_SERIES 2065 : 0 : return false; 2066 : : #else 2067 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2068 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2069 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 2070 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 2071 : : #endif 2072 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2073 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2074 : : if (var1 == 0x06) 2075 : : { 2076 : : switch(var2) 2077 : : { 2078 : : case 0x03ul: 2079 : : return true; 2080 : : case 0x04ul: 2081 : : return false; 2082 : : case 0x05ul: 2083 : : return false; 2084 : : case 0x06ul: 2085 : : return false; 2086 : : case 0x07ul: 2087 : : return false; 2088 : : default: 2089 : : return false; 2090 : : } 2091 : : } 2092 : : #endif 2093 : : return false; 2094 : : #endif 2095 : : } 2096 : : 2097 : : /* ========= Errata 40 ========= */ 2098 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 2099 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2100 : : #define NRF52_ERRATA_40_PRESENT 1 2101 : : #else 2102 : : #define NRF52_ERRATA_40_PRESENT 0 2103 : : #endif 2104 : : 2105 : : #ifndef NRF52_ERRATA_40_ENABLE_WORKAROUND 2106 : : #define NRF52_ERRATA_40_ENABLE_WORKAROUND NRF52_ERRATA_40_PRESENT 2107 : : #endif 2108 : : 2109 : 0 : static bool nrf52_errata_40(void) 2110 : : { 2111 : : #ifndef NRF52_SERIES 2112 : 0 : return false; 2113 : : #else 2114 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2115 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2116 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 2117 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 2118 : : #endif 2119 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2120 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2121 : : if (var1 == 0x06) 2122 : : { 2123 : : switch(var2) 2124 : : { 2125 : : case 0x03ul: 2126 : : return true; 2127 : : case 0x04ul: 2128 : : return false; 2129 : : case 0x05ul: 2130 : : return false; 2131 : : case 0x06ul: 2132 : : return false; 2133 : : case 0x07ul: 2134 : : return false; 2135 : : default: 2136 : : return false; 2137 : : } 2138 : : } 2139 : : #endif 2140 : : return false; 2141 : : #endif 2142 : : } 2143 : : 2144 : : /* ========= Errata 41 ========= */ 2145 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 2146 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2147 : : #define NRF52_ERRATA_41_PRESENT 1 2148 : : #else 2149 : : #define NRF52_ERRATA_41_PRESENT 0 2150 : : #endif 2151 : : 2152 : : #ifndef NRF52_ERRATA_41_ENABLE_WORKAROUND 2153 : : #define NRF52_ERRATA_41_ENABLE_WORKAROUND NRF52_ERRATA_41_PRESENT 2154 : : #endif 2155 : : 2156 : 0 : static bool nrf52_errata_41(void) 2157 : : { 2158 : : #ifndef NRF52_SERIES 2159 : 0 : return false; 2160 : : #else 2161 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2162 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2163 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 2164 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 2165 : : #endif 2166 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2167 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2168 : : if (var1 == 0x06) 2169 : : { 2170 : : switch(var2) 2171 : : { 2172 : : case 0x03ul: 2173 : : return true; 2174 : : case 0x04ul: 2175 : : return false; 2176 : : case 0x05ul: 2177 : : return false; 2178 : : case 0x06ul: 2179 : : return false; 2180 : : case 0x07ul: 2181 : : return false; 2182 : : default: 2183 : : return false; 2184 : : } 2185 : : } 2186 : : #endif 2187 : : return false; 2188 : : #endif 2189 : : } 2190 : : 2191 : : /* ========= Errata 42 ========= */ 2192 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 2193 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2194 : : #define NRF52_ERRATA_42_PRESENT 1 2195 : : #else 2196 : : #define NRF52_ERRATA_42_PRESENT 0 2197 : : #endif 2198 : : 2199 : : #ifndef NRF52_ERRATA_42_ENABLE_WORKAROUND 2200 : : #define NRF52_ERRATA_42_ENABLE_WORKAROUND NRF52_ERRATA_42_PRESENT 2201 : : #endif 2202 : : 2203 : 0 : static bool nrf52_errata_42(void) 2204 : : { 2205 : : #ifndef NRF52_SERIES 2206 : 0 : return false; 2207 : : #else 2208 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2209 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2210 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 2211 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 2212 : : #endif 2213 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2214 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2215 : : if (var1 == 0x06) 2216 : : { 2217 : : switch(var2) 2218 : : { 2219 : : case 0x03ul: 2220 : : return true; 2221 : : case 0x04ul: 2222 : : return false; 2223 : : case 0x05ul: 2224 : : return false; 2225 : : case 0x06ul: 2226 : : return false; 2227 : : case 0x07ul: 2228 : : return false; 2229 : : default: 2230 : : return false; 2231 : : } 2232 : : } 2233 : : #endif 2234 : : return false; 2235 : : #endif 2236 : : } 2237 : : 2238 : : /* ========= Errata 43 ========= */ 2239 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 2240 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2241 : : #define NRF52_ERRATA_43_PRESENT 1 2242 : : #else 2243 : : #define NRF52_ERRATA_43_PRESENT 0 2244 : : #endif 2245 : : 2246 : : #ifndef NRF52_ERRATA_43_ENABLE_WORKAROUND 2247 : : #define NRF52_ERRATA_43_ENABLE_WORKAROUND NRF52_ERRATA_43_PRESENT 2248 : : #endif 2249 : : 2250 : 0 : static bool nrf52_errata_43(void) 2251 : : { 2252 : : #ifndef NRF52_SERIES 2253 : 0 : return false; 2254 : : #else 2255 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2256 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2257 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 2258 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 2259 : : #endif 2260 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2261 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2262 : : if (var1 == 0x06) 2263 : : { 2264 : : switch(var2) 2265 : : { 2266 : : case 0x03ul: 2267 : : return true; 2268 : : case 0x04ul: 2269 : : return false; 2270 : : case 0x05ul: 2271 : : return false; 2272 : : case 0x06ul: 2273 : : return false; 2274 : : case 0x07ul: 2275 : : return false; 2276 : : default: 2277 : : return false; 2278 : : } 2279 : : } 2280 : : #endif 2281 : : return false; 2282 : : #endif 2283 : : } 2284 : : 2285 : : /* ========= Errata 44 ========= */ 2286 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 2287 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2288 : : #define NRF52_ERRATA_44_PRESENT 1 2289 : : #else 2290 : : #define NRF52_ERRATA_44_PRESENT 0 2291 : : #endif 2292 : : 2293 : : #ifndef NRF52_ERRATA_44_ENABLE_WORKAROUND 2294 : : #define NRF52_ERRATA_44_ENABLE_WORKAROUND NRF52_ERRATA_44_PRESENT 2295 : : #endif 2296 : : 2297 : 0 : static bool nrf52_errata_44(void) 2298 : : { 2299 : : #ifndef NRF52_SERIES 2300 : 0 : return false; 2301 : : #else 2302 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2303 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2304 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 2305 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 2306 : : #endif 2307 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2308 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2309 : : if (var1 == 0x06) 2310 : : { 2311 : : switch(var2) 2312 : : { 2313 : : case 0x03ul: 2314 : : return true; 2315 : : case 0x04ul: 2316 : : return false; 2317 : : case 0x05ul: 2318 : : return false; 2319 : : case 0x06ul: 2320 : : return false; 2321 : : case 0x07ul: 2322 : : return false; 2323 : : default: 2324 : : return false; 2325 : : } 2326 : : } 2327 : : #endif 2328 : : return false; 2329 : : #endif 2330 : : } 2331 : : 2332 : : /* ========= Errata 46 ========= */ 2333 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 2334 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2335 : : #define NRF52_ERRATA_46_PRESENT 1 2336 : : #else 2337 : : #define NRF52_ERRATA_46_PRESENT 0 2338 : : #endif 2339 : : 2340 : : #ifndef NRF52_ERRATA_46_ENABLE_WORKAROUND 2341 : : #define NRF52_ERRATA_46_ENABLE_WORKAROUND NRF52_ERRATA_46_PRESENT 2342 : : #endif 2343 : : 2344 : 0 : static bool nrf52_errata_46(void) 2345 : : { 2346 : : #ifndef NRF52_SERIES 2347 : 0 : return false; 2348 : : #else 2349 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2350 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2351 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 2352 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 2353 : : #endif 2354 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2355 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2356 : : if (var1 == 0x06) 2357 : : { 2358 : : switch(var2) 2359 : : { 2360 : : case 0x03ul: 2361 : : return true; 2362 : : case 0x04ul: 2363 : : return false; 2364 : : case 0x05ul: 2365 : : return false; 2366 : : case 0x06ul: 2367 : : return false; 2368 : : case 0x07ul: 2369 : : return false; 2370 : : default: 2371 : : return false; 2372 : : } 2373 : : } 2374 : : #endif 2375 : : return false; 2376 : : #endif 2377 : : } 2378 : : 2379 : : /* ========= Errata 47 ========= */ 2380 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 2381 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2382 : : #define NRF52_ERRATA_47_PRESENT 1 2383 : : #else 2384 : : #define NRF52_ERRATA_47_PRESENT 0 2385 : : #endif 2386 : : 2387 : : #ifndef NRF52_ERRATA_47_ENABLE_WORKAROUND 2388 : : #define NRF52_ERRATA_47_ENABLE_WORKAROUND NRF52_ERRATA_47_PRESENT 2389 : : #endif 2390 : : 2391 : 0 : static bool nrf52_errata_47(void) 2392 : : { 2393 : : #ifndef NRF52_SERIES 2394 : 0 : return false; 2395 : : #else 2396 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2397 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2398 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 2399 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 2400 : : #endif 2401 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2402 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2403 : : if (var1 == 0x06) 2404 : : { 2405 : : switch(var2) 2406 : : { 2407 : : case 0x03ul: 2408 : : return true; 2409 : : case 0x04ul: 2410 : : return false; 2411 : : case 0x05ul: 2412 : : return false; 2413 : : case 0x06ul: 2414 : : return false; 2415 : : case 0x07ul: 2416 : : return false; 2417 : : default: 2418 : : return false; 2419 : : } 2420 : : } 2421 : : #endif 2422 : : return false; 2423 : : #endif 2424 : : } 2425 : : 2426 : : /* ========= Errata 48 ========= */ 2427 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 2428 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2429 : : #define NRF52_ERRATA_48_PRESENT 1 2430 : : #else 2431 : : #define NRF52_ERRATA_48_PRESENT 0 2432 : : #endif 2433 : : 2434 : : #ifndef NRF52_ERRATA_48_ENABLE_WORKAROUND 2435 : : #define NRF52_ERRATA_48_ENABLE_WORKAROUND NRF52_ERRATA_48_PRESENT 2436 : : #endif 2437 : : 2438 : 0 : static bool nrf52_errata_48(void) 2439 : : { 2440 : : #ifndef NRF52_SERIES 2441 : 0 : return false; 2442 : : #else 2443 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2444 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2445 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 2446 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 2447 : : #endif 2448 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2449 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2450 : : if (var1 == 0x06) 2451 : : { 2452 : : switch(var2) 2453 : : { 2454 : : case 0x03ul: 2455 : : return true; 2456 : : case 0x04ul: 2457 : : return false; 2458 : : case 0x05ul: 2459 : : return false; 2460 : : case 0x06ul: 2461 : : return false; 2462 : : case 0x07ul: 2463 : : return false; 2464 : : default: 2465 : : return false; 2466 : : } 2467 : : } 2468 : : #endif 2469 : : return false; 2470 : : #endif 2471 : : } 2472 : : 2473 : : /* ========= Errata 49 ========= */ 2474 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 2475 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2476 : : #define NRF52_ERRATA_49_PRESENT 1 2477 : : #else 2478 : : #define NRF52_ERRATA_49_PRESENT 0 2479 : : #endif 2480 : : 2481 : : #ifndef NRF52_ERRATA_49_ENABLE_WORKAROUND 2482 : : #define NRF52_ERRATA_49_ENABLE_WORKAROUND NRF52_ERRATA_49_PRESENT 2483 : : #endif 2484 : : 2485 : 0 : static bool nrf52_errata_49(void) 2486 : : { 2487 : : #ifndef NRF52_SERIES 2488 : 0 : return false; 2489 : : #else 2490 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2491 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2492 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 2493 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 2494 : : #endif 2495 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2496 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2497 : : if (var1 == 0x06) 2498 : : { 2499 : : switch(var2) 2500 : : { 2501 : : case 0x03ul: 2502 : : return true; 2503 : : case 0x04ul: 2504 : : return false; 2505 : : case 0x05ul: 2506 : : return false; 2507 : : case 0x06ul: 2508 : : return false; 2509 : : case 0x07ul: 2510 : : return false; 2511 : : default: 2512 : : return false; 2513 : : } 2514 : : } 2515 : : #endif 2516 : : return false; 2517 : : #endif 2518 : : } 2519 : : 2520 : : /* ========= Errata 51 ========= */ 2521 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 2522 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2523 : : #define NRF52_ERRATA_51_PRESENT 1 2524 : : #else 2525 : : #define NRF52_ERRATA_51_PRESENT 0 2526 : : #endif 2527 : : 2528 : : #ifndef NRF52_ERRATA_51_ENABLE_WORKAROUND 2529 : : #define NRF52_ERRATA_51_ENABLE_WORKAROUND NRF52_ERRATA_51_PRESENT 2530 : : #endif 2531 : : 2532 : 0 : static bool nrf52_errata_51(void) 2533 : : { 2534 : : #ifndef NRF52_SERIES 2535 : 0 : return false; 2536 : : #else 2537 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2538 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2539 : : uint32_t var1; 2540 : : uint32_t var2; 2541 : : 2542 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 2543 : : { 2544 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 2545 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 2546 : : } 2547 : : else 2548 : : { 2549 : : var1 = *(uint32_t *)0x10000130ul; 2550 : : var2 = *(uint32_t *)0x10000134ul; 2551 : : } 2552 : : #endif 2553 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2554 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2555 : : if (var1 == 0x06) 2556 : : { 2557 : : switch(var2) 2558 : : { 2559 : : case 0x03ul: 2560 : : return false; 2561 : : case 0x04ul: 2562 : : return true; 2563 : : case 0x05ul: 2564 : : return true; 2565 : : case 0x06ul: 2566 : : return true; 2567 : : case 0x07ul: 2568 : : return true; 2569 : : default: 2570 : : return true; 2571 : : } 2572 : : } 2573 : : #endif 2574 : : return false; 2575 : : #endif 2576 : : } 2577 : : 2578 : : /* ========= Errata 54 ========= */ 2579 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 2580 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 2581 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 2582 : : #define NRF52_ERRATA_54_PRESENT 1 2583 : : #else 2584 : : #define NRF52_ERRATA_54_PRESENT 0 2585 : : #endif 2586 : : 2587 : : #ifndef NRF52_ERRATA_54_ENABLE_WORKAROUND 2588 : : #define NRF52_ERRATA_54_ENABLE_WORKAROUND NRF52_ERRATA_54_PRESENT 2589 : : #endif 2590 : : 2591 : 0 : static bool nrf52_errata_54(void) 2592 : : { 2593 : : #ifndef NRF52_SERIES 2594 : 0 : return false; 2595 : : #else 2596 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2597 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2598 : : uint32_t var1; 2599 : : uint32_t var2; 2600 : : 2601 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 2602 : : { 2603 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 2604 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 2605 : : } 2606 : : else 2607 : : { 2608 : : var1 = *(uint32_t *)0x10000130ul; 2609 : : var2 = *(uint32_t *)0x10000134ul; 2610 : : } 2611 : : #elif defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 2612 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 2613 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 2614 : : #endif 2615 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2616 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2617 : : if (var1 == 0x06) 2618 : : { 2619 : : switch(var2) 2620 : : { 2621 : : case 0x03ul: 2622 : : return false; 2623 : : case 0x04ul: 2624 : : return true; 2625 : : case 0x05ul: 2626 : : return true; 2627 : : case 0x06ul: 2628 : : return true; 2629 : : case 0x07ul: 2630 : : return true; 2631 : : default: 2632 : : return true; 2633 : : } 2634 : : } 2635 : : #endif 2636 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 2637 : : if (var1 == 0x08) 2638 : : { 2639 : : switch(var2) 2640 : : { 2641 : : case 0x00ul: 2642 : : return true; 2643 : : case 0x01ul: 2644 : : return false; 2645 : : case 0x02ul: 2646 : : return false; 2647 : : case 0x03ul: 2648 : : return false; 2649 : : case 0x04ul: 2650 : : return false; 2651 : : case 0x05ul: 2652 : : return false; 2653 : : default: 2654 : : return false; 2655 : : } 2656 : : } 2657 : : #endif 2658 : : return false; 2659 : : #endif 2660 : : } 2661 : : 2662 : : /* ========= Errata 55 ========= */ 2663 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 2664 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 2665 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 2666 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 2667 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 2668 : : #define NRF52_ERRATA_55_PRESENT 1 2669 : : #else 2670 : : #define NRF52_ERRATA_55_PRESENT 0 2671 : : #endif 2672 : : 2673 : : #ifndef NRF52_ERRATA_55_ENABLE_WORKAROUND 2674 : : #define NRF52_ERRATA_55_ENABLE_WORKAROUND NRF52_ERRATA_55_PRESENT 2675 : : #endif 2676 : : 2677 : 0 : static bool nrf52_errata_55(void) 2678 : : { 2679 : : #ifndef NRF52_SERIES 2680 : 0 : return false; 2681 : : #else 2682 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2683 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2684 : : uint32_t var1; 2685 : : uint32_t var2; 2686 : : 2687 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 2688 : : { 2689 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 2690 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 2691 : : } 2692 : : else 2693 : : { 2694 : : var1 = *(uint32_t *)0x10000130ul; 2695 : : var2 = *(uint32_t *)0x10000134ul; 2696 : : } 2697 : : #elif defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 2698 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 2699 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 2700 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 2701 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 2702 : : #endif 2703 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2704 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2705 : : if (var1 == 0x06) 2706 : : { 2707 : : switch(var2) 2708 : : { 2709 : : case 0x03ul: 2710 : : return false; 2711 : : case 0x04ul: 2712 : : return true; 2713 : : case 0x05ul: 2714 : : return true; 2715 : : case 0x06ul: 2716 : : return true; 2717 : : case 0x07ul: 2718 : : return true; 2719 : : default: 2720 : : return true; 2721 : : } 2722 : : } 2723 : : #endif 2724 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 2725 : : if (var1 == 0x08) 2726 : : { 2727 : : switch(var2) 2728 : : { 2729 : : case 0x00ul: 2730 : : return true; 2731 : : case 0x01ul: 2732 : : return true; 2733 : : case 0x02ul: 2734 : : return true; 2735 : : case 0x03ul: 2736 : : return true; 2737 : : case 0x04ul: 2738 : : return true; 2739 : : case 0x05ul: 2740 : : return true; 2741 : : default: 2742 : : return true; 2743 : : } 2744 : : } 2745 : : #endif 2746 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 2747 : : if (var1 == 0x0D) 2748 : : { 2749 : : switch(var2) 2750 : : { 2751 : : case 0x00ul: 2752 : : return true; 2753 : : case 0x01ul: 2754 : : return true; 2755 : : default: 2756 : : return true; 2757 : : } 2758 : : } 2759 : : #endif 2760 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 2761 : : if (var1 == 0x10) 2762 : : { 2763 : : switch(var2) 2764 : : { 2765 : : case 0x00ul: 2766 : : return true; 2767 : : case 0x01ul: 2768 : : return true; 2769 : : case 0x02ul: 2770 : : return false; 2771 : : case 0x03ul: 2772 : : return false; 2773 : : default: 2774 : : return false; 2775 : : } 2776 : : } 2777 : : #endif 2778 : : return false; 2779 : : #endif 2780 : : } 2781 : : 2782 : : /* ========= Errata 57 ========= */ 2783 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 2784 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2785 : : #define NRF52_ERRATA_57_PRESENT 1 2786 : : #else 2787 : : #define NRF52_ERRATA_57_PRESENT 0 2788 : : #endif 2789 : : 2790 : : #ifndef NRF52_ERRATA_57_ENABLE_WORKAROUND 2791 : : #define NRF52_ERRATA_57_ENABLE_WORKAROUND NRF52_ERRATA_57_PRESENT 2792 : : #endif 2793 : : 2794 : 0 : static bool nrf52_errata_57(void) 2795 : : { 2796 : : #ifndef NRF52_SERIES 2797 : 0 : return false; 2798 : : #else 2799 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2800 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2801 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 2802 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 2803 : : #endif 2804 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2805 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2806 : : if (var1 == 0x06) 2807 : : { 2808 : : switch(var2) 2809 : : { 2810 : : case 0x03ul: 2811 : : return true; 2812 : : case 0x04ul: 2813 : : return false; 2814 : : case 0x05ul: 2815 : : return false; 2816 : : case 0x06ul: 2817 : : return false; 2818 : : case 0x07ul: 2819 : : return false; 2820 : : default: 2821 : : return false; 2822 : : } 2823 : : } 2824 : : #endif 2825 : : return false; 2826 : : #endif 2827 : : } 2828 : : 2829 : : /* ========= Errata 58 ========= */ 2830 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 2831 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 2832 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 2833 : : #define NRF52_ERRATA_58_PRESENT 1 2834 : : #else 2835 : : #define NRF52_ERRATA_58_PRESENT 0 2836 : : #endif 2837 : : 2838 : : #ifndef NRF52_ERRATA_58_ENABLE_WORKAROUND 2839 : : #define NRF52_ERRATA_58_ENABLE_WORKAROUND NRF52_ERRATA_58_PRESENT 2840 : : #endif 2841 : : 2842 : 0 : static bool nrf52_errata_58(void) 2843 : : { 2844 : : #ifndef NRF52_SERIES 2845 : 0 : return false; 2846 : : #else 2847 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2848 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2849 : : uint32_t var1; 2850 : : uint32_t var2; 2851 : : 2852 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 2853 : : { 2854 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 2855 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 2856 : : } 2857 : : else 2858 : : { 2859 : : var1 = *(uint32_t *)0x10000130ul; 2860 : : var2 = *(uint32_t *)0x10000134ul; 2861 : : } 2862 : : #elif defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 2863 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 2864 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 2865 : : #endif 2866 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2867 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2868 : : if (var1 == 0x06) 2869 : : { 2870 : : switch(var2) 2871 : : { 2872 : : case 0x03ul: 2873 : : return true; 2874 : : case 0x04ul: 2875 : : return true; 2876 : : case 0x05ul: 2877 : : return true; 2878 : : case 0x06ul: 2879 : : return true; 2880 : : case 0x07ul: 2881 : : return true; 2882 : : default: 2883 : : return true; 2884 : : } 2885 : : } 2886 : : #endif 2887 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 2888 : : if (var1 == 0x08) 2889 : : { 2890 : : switch(var2) 2891 : : { 2892 : : case 0x00ul: 2893 : : return true; 2894 : : case 0x01ul: 2895 : : return false; 2896 : : case 0x02ul: 2897 : : return false; 2898 : : case 0x03ul: 2899 : : return false; 2900 : : case 0x04ul: 2901 : : return false; 2902 : : case 0x05ul: 2903 : : return false; 2904 : : default: 2905 : : return false; 2906 : : } 2907 : : } 2908 : : #endif 2909 : : return false; 2910 : : #endif 2911 : : } 2912 : : 2913 : : /* ========= Errata 62 ========= */ 2914 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 2915 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2916 : : #define NRF52_ERRATA_62_PRESENT 1 2917 : : #else 2918 : : #define NRF52_ERRATA_62_PRESENT 0 2919 : : #endif 2920 : : 2921 : : #ifndef NRF52_ERRATA_62_ENABLE_WORKAROUND 2922 : : #define NRF52_ERRATA_62_ENABLE_WORKAROUND NRF52_ERRATA_62_PRESENT 2923 : : #endif 2924 : : 2925 : 0 : static bool nrf52_errata_62(void) 2926 : : { 2927 : : #ifndef NRF52_SERIES 2928 : 0 : return false; 2929 : : #else 2930 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2931 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2932 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 2933 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 2934 : : #endif 2935 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2936 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2937 : : if (var1 == 0x06) 2938 : : { 2939 : : switch(var2) 2940 : : { 2941 : : case 0x03ul: 2942 : : return true; 2943 : : case 0x04ul: 2944 : : return false; 2945 : : case 0x05ul: 2946 : : return false; 2947 : : case 0x06ul: 2948 : : return false; 2949 : : case 0x07ul: 2950 : : return false; 2951 : : default: 2952 : : return false; 2953 : : } 2954 : : } 2955 : : #endif 2956 : : return false; 2957 : : #endif 2958 : : } 2959 : : 2960 : : /* ========= Errata 63 ========= */ 2961 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 2962 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2963 : : #define NRF52_ERRATA_63_PRESENT 1 2964 : : #else 2965 : : #define NRF52_ERRATA_63_PRESENT 0 2966 : : #endif 2967 : : 2968 : : #ifndef NRF52_ERRATA_63_ENABLE_WORKAROUND 2969 : : #define NRF52_ERRATA_63_ENABLE_WORKAROUND NRF52_ERRATA_63_PRESENT 2970 : : #endif 2971 : : 2972 : 0 : static bool nrf52_errata_63(void) 2973 : : { 2974 : : #ifndef NRF52_SERIES 2975 : 0 : return false; 2976 : : #else 2977 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2978 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2979 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 2980 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 2981 : : #endif 2982 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 2983 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 2984 : : if (var1 == 0x06) 2985 : : { 2986 : : switch(var2) 2987 : : { 2988 : : case 0x03ul: 2989 : : return true; 2990 : : case 0x04ul: 2991 : : return true; 2992 : : case 0x05ul: 2993 : : return false; 2994 : : case 0x06ul: 2995 : : return false; 2996 : : case 0x07ul: 2997 : : return false; 2998 : : default: 2999 : : return false; 3000 : : } 3001 : : } 3002 : : #endif 3003 : : return false; 3004 : : #endif 3005 : : } 3006 : : 3007 : : /* ========= Errata 64 ========= */ 3008 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 3009 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3010 : : #define NRF52_ERRATA_64_PRESENT 1 3011 : : #else 3012 : : #define NRF52_ERRATA_64_PRESENT 0 3013 : : #endif 3014 : : 3015 : : #ifndef NRF52_ERRATA_64_ENABLE_WORKAROUND 3016 : : #define NRF52_ERRATA_64_ENABLE_WORKAROUND NRF52_ERRATA_64_PRESENT 3017 : : #endif 3018 : : 3019 : 0 : static bool nrf52_errata_64(void) 3020 : : { 3021 : : #ifndef NRF52_SERIES 3022 : 0 : return false; 3023 : : #else 3024 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3025 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3026 : : uint32_t var1; 3027 : : uint32_t var2; 3028 : : 3029 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 3030 : : { 3031 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 3032 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 3033 : : } 3034 : : else 3035 : : { 3036 : : var1 = *(uint32_t *)0x10000130ul; 3037 : : var2 = *(uint32_t *)0x10000134ul; 3038 : : } 3039 : : #endif 3040 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3041 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3042 : : if (var1 == 0x06) 3043 : : { 3044 : : switch(var2) 3045 : : { 3046 : : case 0x03ul: 3047 : : return true; 3048 : : case 0x04ul: 3049 : : return true; 3050 : : case 0x05ul: 3051 : : return true; 3052 : : case 0x06ul: 3053 : : return true; 3054 : : case 0x07ul: 3055 : : return true; 3056 : : default: 3057 : : return true; 3058 : : } 3059 : : } 3060 : : #endif 3061 : : return false; 3062 : : #endif 3063 : : } 3064 : : 3065 : : /* ========= Errata 65 ========= */ 3066 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 3067 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3068 : : #define NRF52_ERRATA_65_PRESENT 1 3069 : : #else 3070 : : #define NRF52_ERRATA_65_PRESENT 0 3071 : : #endif 3072 : : 3073 : : #ifndef NRF52_ERRATA_65_ENABLE_WORKAROUND 3074 : : #define NRF52_ERRATA_65_ENABLE_WORKAROUND NRF52_ERRATA_65_PRESENT 3075 : : #endif 3076 : : 3077 : 0 : static bool nrf52_errata_65(void) 3078 : : { 3079 : : #ifndef NRF52_SERIES 3080 : 0 : return false; 3081 : : #else 3082 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3083 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3084 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 3085 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 3086 : : #endif 3087 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3088 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3089 : : if (var1 == 0x06) 3090 : : { 3091 : : switch(var2) 3092 : : { 3093 : : case 0x03ul: 3094 : : return true; 3095 : : case 0x04ul: 3096 : : return false; 3097 : : case 0x05ul: 3098 : : return false; 3099 : : case 0x06ul: 3100 : : return false; 3101 : : case 0x07ul: 3102 : : return false; 3103 : : default: 3104 : : return false; 3105 : : } 3106 : : } 3107 : : #endif 3108 : : return false; 3109 : : #endif 3110 : : } 3111 : : 3112 : : /* ========= Errata 66 ========= */ 3113 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 3114 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 3115 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 3116 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 3117 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 3118 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 3119 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 3120 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 3121 : : #define NRF52_ERRATA_66_PRESENT 1 3122 : : #else 3123 : : #define NRF52_ERRATA_66_PRESENT 0 3124 : : #endif 3125 : : 3126 : : #ifndef NRF52_ERRATA_66_ENABLE_WORKAROUND 3127 : : #define NRF52_ERRATA_66_ENABLE_WORKAROUND NRF52_ERRATA_66_PRESENT 3128 : : #endif 3129 : : 3130 : 0 : static bool nrf52_errata_66(void) 3131 : : { 3132 : : #ifndef NRF52_SERIES 3133 : 0 : return false; 3134 : : #else 3135 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3136 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3137 : : uint32_t var1; 3138 : : uint32_t var2; 3139 : : 3140 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 3141 : : { 3142 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 3143 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 3144 : : } 3145 : : else 3146 : : { 3147 : : var1 = *(uint32_t *)0x10000130ul; 3148 : : var2 = *(uint32_t *)0x10000134ul; 3149 : : } 3150 : : #elif defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 3151 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 3152 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 3153 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 3154 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 3155 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 3156 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 3157 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 3158 : : #endif 3159 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3160 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3161 : : if (var1 == 0x06) 3162 : : { 3163 : : switch(var2) 3164 : : { 3165 : : case 0x03ul: 3166 : : return false; 3167 : : case 0x04ul: 3168 : : return false; 3169 : : case 0x05ul: 3170 : : return true; 3171 : : case 0x06ul: 3172 : : return true; 3173 : : case 0x07ul: 3174 : : return true; 3175 : : default: 3176 : : return true; 3177 : : } 3178 : : } 3179 : : #endif 3180 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 3181 : : if (var1 == 0x08) 3182 : : { 3183 : : switch(var2) 3184 : : { 3185 : : case 0x00ul: 3186 : : return true; 3187 : : case 0x01ul: 3188 : : return true; 3189 : : case 0x02ul: 3190 : : return true; 3191 : : case 0x03ul: 3192 : : return true; 3193 : : case 0x04ul: 3194 : : return true; 3195 : : case 0x05ul: 3196 : : return true; 3197 : : default: 3198 : : return true; 3199 : : } 3200 : : } 3201 : : #endif 3202 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 3203 : : if (var1 == 0x0A) 3204 : : { 3205 : : switch(var2) 3206 : : { 3207 : : case 0x00ul: 3208 : : return true; 3209 : : case 0x01ul: 3210 : : return true; 3211 : : case 0x02ul: 3212 : : return true; 3213 : : default: 3214 : : return true; 3215 : : } 3216 : : } 3217 : : #endif 3218 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 3219 : : if (var1 == 0x0D) 3220 : : { 3221 : : switch(var2) 3222 : : { 3223 : : case 0x00ul: 3224 : : return true; 3225 : : case 0x01ul: 3226 : : return true; 3227 : : default: 3228 : : return true; 3229 : : } 3230 : : } 3231 : : #endif 3232 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 3233 : : if (var1 == 0x0E) 3234 : : { 3235 : : switch(var2) 3236 : : { 3237 : : case 0x00ul: 3238 : : return true; 3239 : : case 0x01ul: 3240 : : return true; 3241 : : default: 3242 : : return true; 3243 : : } 3244 : : } 3245 : : #endif 3246 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 3247 : : if (var1 == 0x0F) 3248 : : { 3249 : : switch(var2) 3250 : : { 3251 : : case 0x00ul: 3252 : : return true; 3253 : : case 0x01ul: 3254 : : return true; 3255 : : default: 3256 : : return true; 3257 : : } 3258 : : } 3259 : : #endif 3260 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 3261 : : if (var1 == 0x10) 3262 : : { 3263 : : switch(var2) 3264 : : { 3265 : : case 0x00ul: 3266 : : return true; 3267 : : case 0x01ul: 3268 : : return true; 3269 : : case 0x02ul: 3270 : : return true; 3271 : : case 0x03ul: 3272 : : return true; 3273 : : default: 3274 : : return true; 3275 : : } 3276 : : } 3277 : : #endif 3278 : : return false; 3279 : : #endif 3280 : : } 3281 : : 3282 : : /* ========= Errata 67 ========= */ 3283 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 3284 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3285 : : #define NRF52_ERRATA_67_PRESENT 1 3286 : : #else 3287 : : #define NRF52_ERRATA_67_PRESENT 0 3288 : : #endif 3289 : : 3290 : : #ifndef NRF52_ERRATA_67_ENABLE_WORKAROUND 3291 : : #define NRF52_ERRATA_67_ENABLE_WORKAROUND NRF52_ERRATA_67_PRESENT 3292 : : #endif 3293 : : 3294 : 0 : static bool nrf52_errata_67(void) 3295 : : { 3296 : : #ifndef NRF52_SERIES 3297 : 0 : return false; 3298 : : #else 3299 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3300 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3301 : : uint32_t var1; 3302 : : uint32_t var2; 3303 : : 3304 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 3305 : : { 3306 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 3307 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 3308 : : } 3309 : : else 3310 : : { 3311 : : var1 = *(uint32_t *)0x10000130ul; 3312 : : var2 = *(uint32_t *)0x10000134ul; 3313 : : } 3314 : : #endif 3315 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3316 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3317 : : if (var1 == 0x06) 3318 : : { 3319 : : switch(var2) 3320 : : { 3321 : : case 0x03ul: 3322 : : return true; 3323 : : case 0x04ul: 3324 : : return true; 3325 : : case 0x05ul: 3326 : : return true; 3327 : : case 0x06ul: 3328 : : return true; 3329 : : case 0x07ul: 3330 : : return true; 3331 : : default: 3332 : : return true; 3333 : : } 3334 : : } 3335 : : #endif 3336 : : return false; 3337 : : #endif 3338 : : } 3339 : : 3340 : : /* ========= Errata 68 ========= */ 3341 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 3342 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 3343 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 3344 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 3345 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 3346 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 3347 : : #define NRF52_ERRATA_68_PRESENT 1 3348 : : #else 3349 : : #define NRF52_ERRATA_68_PRESENT 0 3350 : : #endif 3351 : : 3352 : : #ifndef NRF52_ERRATA_68_ENABLE_WORKAROUND 3353 : : #define NRF52_ERRATA_68_ENABLE_WORKAROUND NRF52_ERRATA_68_PRESENT 3354 : : #endif 3355 : : 3356 : 0 : static bool nrf52_errata_68(void) 3357 : : { 3358 : : #ifndef NRF52_SERIES 3359 : 0 : return false; 3360 : : #else 3361 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3362 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3363 : : uint32_t var1; 3364 : : uint32_t var2; 3365 : : 3366 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 3367 : : { 3368 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 3369 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 3370 : : } 3371 : : else 3372 : : { 3373 : : var1 = *(uint32_t *)0x10000130ul; 3374 : : var2 = *(uint32_t *)0x10000134ul; 3375 : : } 3376 : : #elif defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 3377 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 3378 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 3379 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 3380 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 3381 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 3382 : : #endif 3383 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3384 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3385 : : if (var1 == 0x06) 3386 : : { 3387 : : switch(var2) 3388 : : { 3389 : : case 0x03ul: 3390 : : return true; 3391 : : case 0x04ul: 3392 : : return true; 3393 : : case 0x05ul: 3394 : : return true; 3395 : : case 0x06ul: 3396 : : return true; 3397 : : case 0x07ul: 3398 : : return true; 3399 : : default: 3400 : : return true; 3401 : : } 3402 : : } 3403 : : #endif 3404 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 3405 : : if (var1 == 0x08) 3406 : : { 3407 : : switch(var2) 3408 : : { 3409 : : case 0x00ul: 3410 : : return true; 3411 : : case 0x01ul: 3412 : : return false; 3413 : : case 0x02ul: 3414 : : return false; 3415 : : case 0x03ul: 3416 : : return false; 3417 : : case 0x04ul: 3418 : : return false; 3419 : : case 0x05ul: 3420 : : return false; 3421 : : default: 3422 : : return false; 3423 : : } 3424 : : } 3425 : : #endif 3426 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 3427 : : if (var1 == 0x0A) 3428 : : { 3429 : : switch(var2) 3430 : : { 3431 : : case 0x00ul: 3432 : : return true; 3433 : : case 0x01ul: 3434 : : return true; 3435 : : case 0x02ul: 3436 : : return true; 3437 : : default: 3438 : : return true; 3439 : : } 3440 : : } 3441 : : #endif 3442 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 3443 : : if (var1 == 0x0E) 3444 : : { 3445 : : switch(var2) 3446 : : { 3447 : : case 0x00ul: 3448 : : return true; 3449 : : case 0x01ul: 3450 : : return true; 3451 : : default: 3452 : : return true; 3453 : : } 3454 : : } 3455 : : #endif 3456 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 3457 : : if (var1 == 0x0F) 3458 : : { 3459 : : switch(var2) 3460 : : { 3461 : : case 0x00ul: 3462 : : return true; 3463 : : case 0x01ul: 3464 : : return true; 3465 : : default: 3466 : : return true; 3467 : : } 3468 : : } 3469 : : #endif 3470 : : return false; 3471 : : #endif 3472 : : } 3473 : : 3474 : : /* ========= Errata 70 ========= */ 3475 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 3476 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3477 : : #define NRF52_ERRATA_70_PRESENT 1 3478 : : #else 3479 : : #define NRF52_ERRATA_70_PRESENT 0 3480 : : #endif 3481 : : 3482 : : #ifndef NRF52_ERRATA_70_ENABLE_WORKAROUND 3483 : : #define NRF52_ERRATA_70_ENABLE_WORKAROUND NRF52_ERRATA_70_PRESENT 3484 : : #endif 3485 : : 3486 : 0 : static bool nrf52_errata_70(void) 3487 : : { 3488 : : #ifndef NRF52_SERIES 3489 : 0 : return false; 3490 : : #else 3491 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3492 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3493 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 3494 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 3495 : : #endif 3496 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3497 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3498 : : if (var1 == 0x06) 3499 : : { 3500 : : switch(var2) 3501 : : { 3502 : : case 0x03ul: 3503 : : return true; 3504 : : case 0x04ul: 3505 : : return true; 3506 : : case 0x05ul: 3507 : : return false; 3508 : : case 0x06ul: 3509 : : return false; 3510 : : case 0x07ul: 3511 : : return false; 3512 : : default: 3513 : : return false; 3514 : : } 3515 : : } 3516 : : #endif 3517 : : return false; 3518 : : #endif 3519 : : } 3520 : : 3521 : : /* ========= Errata 71 ========= */ 3522 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 3523 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3524 : : #define NRF52_ERRATA_71_PRESENT 1 3525 : : #else 3526 : : #define NRF52_ERRATA_71_PRESENT 0 3527 : : #endif 3528 : : 3529 : : #ifndef NRF52_ERRATA_71_ENABLE_WORKAROUND 3530 : : #define NRF52_ERRATA_71_ENABLE_WORKAROUND NRF52_ERRATA_71_PRESENT 3531 : : #endif 3532 : : 3533 : 0 : static bool nrf52_errata_71(void) 3534 : : { 3535 : : #ifndef NRF52_SERIES 3536 : 0 : return false; 3537 : : #else 3538 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3539 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3540 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 3541 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 3542 : : #endif 3543 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3544 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3545 : : if (var1 == 0x06) 3546 : : { 3547 : : switch(var2) 3548 : : { 3549 : : case 0x03ul: 3550 : : return true; 3551 : : case 0x04ul: 3552 : : return true; 3553 : : case 0x05ul: 3554 : : return false; 3555 : : case 0x06ul: 3556 : : return false; 3557 : : case 0x07ul: 3558 : : return false; 3559 : : default: 3560 : : return false; 3561 : : } 3562 : : } 3563 : : #endif 3564 : : return false; 3565 : : #endif 3566 : : } 3567 : : 3568 : : /* ========= Errata 72 ========= */ 3569 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 3570 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3571 : : #define NRF52_ERRATA_72_PRESENT 1 3572 : : #else 3573 : : #define NRF52_ERRATA_72_PRESENT 0 3574 : : #endif 3575 : : 3576 : : #ifndef NRF52_ERRATA_72_ENABLE_WORKAROUND 3577 : : #define NRF52_ERRATA_72_ENABLE_WORKAROUND NRF52_ERRATA_72_PRESENT 3578 : : #endif 3579 : : 3580 : 0 : static bool nrf52_errata_72(void) 3581 : : { 3582 : : #ifndef NRF52_SERIES 3583 : 0 : return false; 3584 : : #else 3585 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3586 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3587 : : uint32_t var1; 3588 : : uint32_t var2; 3589 : : 3590 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 3591 : : { 3592 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 3593 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 3594 : : } 3595 : : else 3596 : : { 3597 : : var1 = *(uint32_t *)0x10000130ul; 3598 : : var2 = *(uint32_t *)0x10000134ul; 3599 : : } 3600 : : #endif 3601 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3602 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3603 : : if (var1 == 0x06) 3604 : : { 3605 : : switch(var2) 3606 : : { 3607 : : case 0x03ul: 3608 : : return true; 3609 : : case 0x04ul: 3610 : : return true; 3611 : : case 0x05ul: 3612 : : return true; 3613 : : case 0x06ul: 3614 : : return true; 3615 : : case 0x07ul: 3616 : : return true; 3617 : : default: 3618 : : return true; 3619 : : } 3620 : : } 3621 : : #endif 3622 : : return false; 3623 : : #endif 3624 : : } 3625 : : 3626 : : /* ========= Errata 73 ========= */ 3627 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 3628 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3629 : : #define NRF52_ERRATA_73_PRESENT 1 3630 : : #else 3631 : : #define NRF52_ERRATA_73_PRESENT 0 3632 : : #endif 3633 : : 3634 : : #ifndef NRF52_ERRATA_73_ENABLE_WORKAROUND 3635 : : #define NRF52_ERRATA_73_ENABLE_WORKAROUND NRF52_ERRATA_73_PRESENT 3636 : : #endif 3637 : : 3638 : 0 : static bool nrf52_errata_73(void) 3639 : : { 3640 : : #ifndef NRF52_SERIES 3641 : 0 : return false; 3642 : : #else 3643 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3644 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3645 : : uint32_t var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 3646 : : uint32_t var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 3647 : : #endif 3648 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3649 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3650 : : if (var1 == 0x06) 3651 : : { 3652 : : switch(var2) 3653 : : { 3654 : : case 0x03ul: 3655 : : return true; 3656 : : case 0x04ul: 3657 : : return true; 3658 : : case 0x05ul: 3659 : : return false; 3660 : : case 0x06ul: 3661 : : return false; 3662 : : case 0x07ul: 3663 : : return false; 3664 : : default: 3665 : : return false; 3666 : : } 3667 : : } 3668 : : #endif 3669 : : return false; 3670 : : #endif 3671 : : } 3672 : : 3673 : : /* ========= Errata 74 ========= */ 3674 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 3675 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3676 : : #define NRF52_ERRATA_74_PRESENT 1 3677 : : #else 3678 : : #define NRF52_ERRATA_74_PRESENT 0 3679 : : #endif 3680 : : 3681 : : #ifndef NRF52_ERRATA_74_ENABLE_WORKAROUND 3682 : : #define NRF52_ERRATA_74_ENABLE_WORKAROUND NRF52_ERRATA_74_PRESENT 3683 : : #endif 3684 : : 3685 : 0 : static bool nrf52_errata_74(void) 3686 : : { 3687 : : #ifndef NRF52_SERIES 3688 : 0 : return false; 3689 : : #else 3690 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3691 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3692 : : uint32_t var1; 3693 : : uint32_t var2; 3694 : : 3695 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 3696 : : { 3697 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 3698 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 3699 : : } 3700 : : else 3701 : : { 3702 : : var1 = *(uint32_t *)0x10000130ul; 3703 : : var2 = *(uint32_t *)0x10000134ul; 3704 : : } 3705 : : #endif 3706 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3707 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3708 : : if (var1 == 0x06) 3709 : : { 3710 : : switch(var2) 3711 : : { 3712 : : case 0x03ul: 3713 : : return true; 3714 : : case 0x04ul: 3715 : : return true; 3716 : : case 0x05ul: 3717 : : return true; 3718 : : case 0x06ul: 3719 : : return true; 3720 : : case 0x07ul: 3721 : : return true; 3722 : : default: 3723 : : return true; 3724 : : } 3725 : : } 3726 : : #endif 3727 : : return false; 3728 : : #endif 3729 : : } 3730 : : 3731 : : /* ========= Errata 75 ========= */ 3732 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 3733 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3734 : : #define NRF52_ERRATA_75_PRESENT 1 3735 : : #else 3736 : : #define NRF52_ERRATA_75_PRESENT 0 3737 : : #endif 3738 : : 3739 : : #ifndef NRF52_ERRATA_75_ENABLE_WORKAROUND 3740 : : #define NRF52_ERRATA_75_ENABLE_WORKAROUND NRF52_ERRATA_75_PRESENT 3741 : : #endif 3742 : : 3743 : 0 : static bool nrf52_errata_75(void) 3744 : : { 3745 : : #ifndef NRF52_SERIES 3746 : 0 : return false; 3747 : : #else 3748 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3749 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3750 : : uint32_t var1; 3751 : : uint32_t var2; 3752 : : 3753 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 3754 : : { 3755 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 3756 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 3757 : : } 3758 : : else 3759 : : { 3760 : : var1 = *(uint32_t *)0x10000130ul; 3761 : : var2 = *(uint32_t *)0x10000134ul; 3762 : : } 3763 : : #endif 3764 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3765 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3766 : : if (var1 == 0x06) 3767 : : { 3768 : : switch(var2) 3769 : : { 3770 : : case 0x03ul: 3771 : : return false; 3772 : : case 0x04ul: 3773 : : return true; 3774 : : case 0x05ul: 3775 : : return true; 3776 : : case 0x06ul: 3777 : : return true; 3778 : : case 0x07ul: 3779 : : return true; 3780 : : default: 3781 : : return true; 3782 : : } 3783 : : } 3784 : : #endif 3785 : : return false; 3786 : : #endif 3787 : : } 3788 : : 3789 : : /* ========= Errata 76 ========= */ 3790 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 3791 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3792 : : #define NRF52_ERRATA_76_PRESENT 1 3793 : : #else 3794 : : #define NRF52_ERRATA_76_PRESENT 0 3795 : : #endif 3796 : : 3797 : : #ifndef NRF52_ERRATA_76_ENABLE_WORKAROUND 3798 : : #define NRF52_ERRATA_76_ENABLE_WORKAROUND NRF52_ERRATA_76_PRESENT 3799 : : #endif 3800 : : 3801 : 0 : static bool nrf52_errata_76(void) 3802 : : { 3803 : : #ifndef NRF52_SERIES 3804 : 0 : return false; 3805 : : #else 3806 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3807 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3808 : : uint32_t var1; 3809 : : uint32_t var2; 3810 : : 3811 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 3812 : : { 3813 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 3814 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 3815 : : } 3816 : : else 3817 : : { 3818 : : var1 = *(uint32_t *)0x10000130ul; 3819 : : var2 = *(uint32_t *)0x10000134ul; 3820 : : } 3821 : : #endif 3822 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3823 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3824 : : if (var1 == 0x06) 3825 : : { 3826 : : switch(var2) 3827 : : { 3828 : : case 0x03ul: 3829 : : return false; 3830 : : case 0x04ul: 3831 : : return true; 3832 : : case 0x05ul: 3833 : : return true; 3834 : : case 0x06ul: 3835 : : return true; 3836 : : case 0x07ul: 3837 : : return true; 3838 : : default: 3839 : : return true; 3840 : : } 3841 : : } 3842 : : #endif 3843 : : return false; 3844 : : #endif 3845 : : } 3846 : : 3847 : : /* ========= Errata 77 ========= */ 3848 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 3849 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 3850 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 3851 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 3852 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3853 : : #define NRF52_ERRATA_77_PRESENT 1 3854 : : #else 3855 : : #define NRF52_ERRATA_77_PRESENT 0 3856 : : #endif 3857 : : 3858 : : #ifndef NRF52_ERRATA_77_ENABLE_WORKAROUND 3859 : : #define NRF52_ERRATA_77_ENABLE_WORKAROUND NRF52_ERRATA_77_PRESENT 3860 : : #endif 3861 : : 3862 : 0 : static bool nrf52_errata_77(void) 3863 : : { 3864 : : #ifndef NRF52_SERIES 3865 : 0 : return false; 3866 : : #else 3867 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3868 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3869 : : uint32_t var1; 3870 : : uint32_t var2; 3871 : : 3872 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 3873 : : { 3874 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 3875 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 3876 : : } 3877 : : else 3878 : : { 3879 : : var1 = *(uint32_t *)0x10000130ul; 3880 : : var2 = *(uint32_t *)0x10000134ul; 3881 : : } 3882 : : #elif defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 3883 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 3884 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 3885 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 3886 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 3887 : : #endif 3888 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3889 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3890 : : if (var1 == 0x06) 3891 : : { 3892 : : switch(var2) 3893 : : { 3894 : : case 0x03ul: 3895 : : return true; 3896 : : case 0x04ul: 3897 : : return true; 3898 : : case 0x05ul: 3899 : : return true; 3900 : : case 0x06ul: 3901 : : return true; 3902 : : case 0x07ul: 3903 : : return true; 3904 : : default: 3905 : : return true; 3906 : : } 3907 : : } 3908 : : #endif 3909 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 3910 : : if (var1 == 0x0A) 3911 : : { 3912 : : switch(var2) 3913 : : { 3914 : : case 0x00ul: 3915 : : return true; 3916 : : case 0x01ul: 3917 : : return true; 3918 : : case 0x02ul: 3919 : : return true; 3920 : : default: 3921 : : return true; 3922 : : } 3923 : : } 3924 : : #endif 3925 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 3926 : : if (var1 == 0x0E) 3927 : : { 3928 : : switch(var2) 3929 : : { 3930 : : case 0x00ul: 3931 : : return true; 3932 : : case 0x01ul: 3933 : : return true; 3934 : : default: 3935 : : return true; 3936 : : } 3937 : : } 3938 : : #endif 3939 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 3940 : : if (var1 == 0x0F) 3941 : : { 3942 : : switch(var2) 3943 : : { 3944 : : case 0x00ul: 3945 : : return true; 3946 : : case 0x01ul: 3947 : : return true; 3948 : : default: 3949 : : return true; 3950 : : } 3951 : : } 3952 : : #endif 3953 : : return false; 3954 : : #endif 3955 : : } 3956 : : 3957 : : /* ========= Errata 78 ========= */ 3958 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 3959 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 3960 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 3961 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 3962 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 3963 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 3964 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 3965 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 3966 : : #define NRF52_ERRATA_78_PRESENT 1 3967 : : #else 3968 : : #define NRF52_ERRATA_78_PRESENT 0 3969 : : #endif 3970 : : 3971 : : #ifndef NRF52_ERRATA_78_ENABLE_WORKAROUND 3972 : : #define NRF52_ERRATA_78_ENABLE_WORKAROUND NRF52_ERRATA_78_PRESENT 3973 : : #endif 3974 : : 3975 : 0 : static bool nrf52_errata_78(void) 3976 : : { 3977 : : #ifndef NRF52_SERIES 3978 : 0 : return false; 3979 : : #else 3980 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 3981 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 3982 : : uint32_t var1; 3983 : : uint32_t var2; 3984 : : 3985 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 3986 : : { 3987 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 3988 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 3989 : : } 3990 : : else 3991 : : { 3992 : : var1 = *(uint32_t *)0x10000130ul; 3993 : : var2 = *(uint32_t *)0x10000134ul; 3994 : : } 3995 : : #elif defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 3996 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 3997 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 3998 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 3999 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 4000 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 4001 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 4002 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 4003 : : #endif 4004 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 4005 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4006 : : if (var1 == 0x06) 4007 : : { 4008 : : switch(var2) 4009 : : { 4010 : : case 0x03ul: 4011 : : return true; 4012 : : case 0x04ul: 4013 : : return true; 4014 : : case 0x05ul: 4015 : : return true; 4016 : : case 0x06ul: 4017 : : return true; 4018 : : case 0x07ul: 4019 : : return true; 4020 : : default: 4021 : : return true; 4022 : : } 4023 : : } 4024 : : #endif 4025 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 4026 : : if (var1 == 0x08) 4027 : : { 4028 : : switch(var2) 4029 : : { 4030 : : case 0x00ul: 4031 : : return true; 4032 : : case 0x01ul: 4033 : : return true; 4034 : : case 0x02ul: 4035 : : return true; 4036 : : case 0x03ul: 4037 : : return true; 4038 : : case 0x04ul: 4039 : : return true; 4040 : : case 0x05ul: 4041 : : return true; 4042 : : default: 4043 : : return true; 4044 : : } 4045 : : } 4046 : : #endif 4047 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 4048 : : if (var1 == 0x0A) 4049 : : { 4050 : : switch(var2) 4051 : : { 4052 : : case 0x00ul: 4053 : : return true; 4054 : : case 0x01ul: 4055 : : return true; 4056 : : case 0x02ul: 4057 : : return true; 4058 : : default: 4059 : : return true; 4060 : : } 4061 : : } 4062 : : #endif 4063 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 4064 : : if (var1 == 0x0D) 4065 : : { 4066 : : switch(var2) 4067 : : { 4068 : : case 0x00ul: 4069 : : return true; 4070 : : case 0x01ul: 4071 : : return true; 4072 : : default: 4073 : : return true; 4074 : : } 4075 : : } 4076 : : #endif 4077 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 4078 : : if (var1 == 0x0E) 4079 : : { 4080 : : switch(var2) 4081 : : { 4082 : : case 0x00ul: 4083 : : return true; 4084 : : case 0x01ul: 4085 : : return true; 4086 : : default: 4087 : : return true; 4088 : : } 4089 : : } 4090 : : #endif 4091 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 4092 : : if (var1 == 0x0F) 4093 : : { 4094 : : switch(var2) 4095 : : { 4096 : : case 0x00ul: 4097 : : return true; 4098 : : case 0x01ul: 4099 : : return true; 4100 : : default: 4101 : : return true; 4102 : : } 4103 : : } 4104 : : #endif 4105 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 4106 : : if (var1 == 0x10) 4107 : : { 4108 : : switch(var2) 4109 : : { 4110 : : case 0x00ul: 4111 : : return true; 4112 : : case 0x01ul: 4113 : : return true; 4114 : : case 0x02ul: 4115 : : return true; 4116 : : case 0x03ul: 4117 : : return true; 4118 : : default: 4119 : : return true; 4120 : : } 4121 : : } 4122 : : #endif 4123 : : return false; 4124 : : #endif 4125 : : } 4126 : : 4127 : : /* ========= Errata 79 ========= */ 4128 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 4129 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4130 : : #define NRF52_ERRATA_79_PRESENT 1 4131 : : #else 4132 : : #define NRF52_ERRATA_79_PRESENT 0 4133 : : #endif 4134 : : 4135 : : #ifndef NRF52_ERRATA_79_ENABLE_WORKAROUND 4136 : : #define NRF52_ERRATA_79_ENABLE_WORKAROUND NRF52_ERRATA_79_PRESENT 4137 : : #endif 4138 : : 4139 : 0 : static bool nrf52_errata_79(void) 4140 : : { 4141 : : #ifndef NRF52_SERIES 4142 : 0 : return false; 4143 : : #else 4144 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 4145 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4146 : : uint32_t var1; 4147 : : uint32_t var2; 4148 : : 4149 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 4150 : : { 4151 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 4152 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 4153 : : } 4154 : : else 4155 : : { 4156 : : var1 = *(uint32_t *)0x10000130ul; 4157 : : var2 = *(uint32_t *)0x10000134ul; 4158 : : } 4159 : : #endif 4160 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 4161 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4162 : : if (var1 == 0x06) 4163 : : { 4164 : : switch(var2) 4165 : : { 4166 : : case 0x03ul: 4167 : : return false; 4168 : : case 0x04ul: 4169 : : return true; 4170 : : case 0x05ul: 4171 : : return true; 4172 : : case 0x06ul: 4173 : : return true; 4174 : : case 0x07ul: 4175 : : return true; 4176 : : default: 4177 : : return true; 4178 : : } 4179 : : } 4180 : : #endif 4181 : : return false; 4182 : : #endif 4183 : : } 4184 : : 4185 : : /* ========= Errata 81 ========= */ 4186 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 4187 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 4188 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 4189 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 4190 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 4191 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 4192 : : #define NRF52_ERRATA_81_PRESENT 1 4193 : : #else 4194 : : #define NRF52_ERRATA_81_PRESENT 0 4195 : : #endif 4196 : : 4197 : : #ifndef NRF52_ERRATA_81_ENABLE_WORKAROUND 4198 : : #define NRF52_ERRATA_81_ENABLE_WORKAROUND NRF52_ERRATA_81_PRESENT 4199 : : #endif 4200 : : 4201 : 0 : static bool nrf52_errata_81(void) 4202 : : { 4203 : : #ifndef NRF52_SERIES 4204 : 0 : return false; 4205 : : #else 4206 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 4207 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4208 : : uint32_t var1; 4209 : : uint32_t var2; 4210 : : 4211 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 4212 : : { 4213 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 4214 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 4215 : : } 4216 : : else 4217 : : { 4218 : : var1 = *(uint32_t *)0x10000130ul; 4219 : : var2 = *(uint32_t *)0x10000134ul; 4220 : : } 4221 : : #elif defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 4222 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 4223 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 4224 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 4225 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 4226 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 4227 : : #endif 4228 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 4229 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4230 : : if (var1 == 0x06) 4231 : : { 4232 : : switch(var2) 4233 : : { 4234 : : case 0x03ul: 4235 : : return false; 4236 : : case 0x04ul: 4237 : : return true; 4238 : : case 0x05ul: 4239 : : return true; 4240 : : case 0x06ul: 4241 : : return true; 4242 : : case 0x07ul: 4243 : : return true; 4244 : : default: 4245 : : return true; 4246 : : } 4247 : : } 4248 : : #endif 4249 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 4250 : : if (var1 == 0x08) 4251 : : { 4252 : : switch(var2) 4253 : : { 4254 : : case 0x00ul: 4255 : : return true; 4256 : : case 0x01ul: 4257 : : return true; 4258 : : case 0x02ul: 4259 : : return true; 4260 : : case 0x03ul: 4261 : : return true; 4262 : : case 0x04ul: 4263 : : return true; 4264 : : case 0x05ul: 4265 : : return true; 4266 : : default: 4267 : : return true; 4268 : : } 4269 : : } 4270 : : #endif 4271 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 4272 : : if (var1 == 0x0A) 4273 : : { 4274 : : switch(var2) 4275 : : { 4276 : : case 0x00ul: 4277 : : return true; 4278 : : case 0x01ul: 4279 : : return true; 4280 : : case 0x02ul: 4281 : : return true; 4282 : : default: 4283 : : return true; 4284 : : } 4285 : : } 4286 : : #endif 4287 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 4288 : : if (var1 == 0x0E) 4289 : : { 4290 : : switch(var2) 4291 : : { 4292 : : case 0x00ul: 4293 : : return true; 4294 : : case 0x01ul: 4295 : : return true; 4296 : : default: 4297 : : return true; 4298 : : } 4299 : : } 4300 : : #endif 4301 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 4302 : : if (var1 == 0x0F) 4303 : : { 4304 : : switch(var2) 4305 : : { 4306 : : case 0x00ul: 4307 : : return true; 4308 : : case 0x01ul: 4309 : : return true; 4310 : : default: 4311 : : return true; 4312 : : } 4313 : : } 4314 : : #endif 4315 : : return false; 4316 : : #endif 4317 : : } 4318 : : 4319 : : /* ========= Errata 83 ========= */ 4320 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 4321 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 4322 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 4323 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 4324 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 4325 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 4326 : : #define NRF52_ERRATA_83_PRESENT 1 4327 : : #else 4328 : : #define NRF52_ERRATA_83_PRESENT 0 4329 : : #endif 4330 : : 4331 : : #ifndef NRF52_ERRATA_83_ENABLE_WORKAROUND 4332 : : #define NRF52_ERRATA_83_ENABLE_WORKAROUND NRF52_ERRATA_83_PRESENT 4333 : : #endif 4334 : : 4335 : 0 : static bool nrf52_errata_83(void) 4336 : : { 4337 : : #ifndef NRF52_SERIES 4338 : 0 : return false; 4339 : : #else 4340 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 4341 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4342 : : uint32_t var1; 4343 : : uint32_t var2; 4344 : : 4345 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 4346 : : { 4347 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 4348 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 4349 : : } 4350 : : else 4351 : : { 4352 : : var1 = *(uint32_t *)0x10000130ul; 4353 : : var2 = *(uint32_t *)0x10000134ul; 4354 : : } 4355 : : #elif defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 4356 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 4357 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 4358 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 4359 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 4360 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 4361 : : #endif 4362 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 4363 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4364 : : if (var1 == 0x06) 4365 : : { 4366 : : switch(var2) 4367 : : { 4368 : : case 0x03ul: 4369 : : return false; 4370 : : case 0x04ul: 4371 : : return true; 4372 : : case 0x05ul: 4373 : : return true; 4374 : : case 0x06ul: 4375 : : return true; 4376 : : case 0x07ul: 4377 : : return true; 4378 : : default: 4379 : : return true; 4380 : : } 4381 : : } 4382 : : #endif 4383 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 4384 : : if (var1 == 0x08) 4385 : : { 4386 : : switch(var2) 4387 : : { 4388 : : case 0x00ul: 4389 : : return true; 4390 : : case 0x01ul: 4391 : : return false; 4392 : : case 0x02ul: 4393 : : return false; 4394 : : case 0x03ul: 4395 : : return false; 4396 : : case 0x04ul: 4397 : : return false; 4398 : : case 0x05ul: 4399 : : return false; 4400 : : default: 4401 : : return false; 4402 : : } 4403 : : } 4404 : : #endif 4405 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 4406 : : if (var1 == 0x0A) 4407 : : { 4408 : : switch(var2) 4409 : : { 4410 : : case 0x00ul: 4411 : : return true; 4412 : : case 0x01ul: 4413 : : return true; 4414 : : case 0x02ul: 4415 : : return true; 4416 : : default: 4417 : : return true; 4418 : : } 4419 : : } 4420 : : #endif 4421 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 4422 : : if (var1 == 0x0E) 4423 : : { 4424 : : switch(var2) 4425 : : { 4426 : : case 0x00ul: 4427 : : return true; 4428 : : case 0x01ul: 4429 : : return true; 4430 : : default: 4431 : : return true; 4432 : : } 4433 : : } 4434 : : #endif 4435 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 4436 : : if (var1 == 0x0F) 4437 : : { 4438 : : switch(var2) 4439 : : { 4440 : : case 0x00ul: 4441 : : return true; 4442 : : case 0x01ul: 4443 : : return true; 4444 : : default: 4445 : : return true; 4446 : : } 4447 : : } 4448 : : #endif 4449 : : return false; 4450 : : #endif 4451 : : } 4452 : : 4453 : : /* ========= Errata 84 ========= */ 4454 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 4455 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4456 : : #define NRF52_ERRATA_84_PRESENT 1 4457 : : #else 4458 : : #define NRF52_ERRATA_84_PRESENT 0 4459 : : #endif 4460 : : 4461 : : #ifndef NRF52_ERRATA_84_ENABLE_WORKAROUND 4462 : : #define NRF52_ERRATA_84_ENABLE_WORKAROUND NRF52_ERRATA_84_PRESENT 4463 : : #endif 4464 : : 4465 : 0 : static bool nrf52_errata_84(void) 4466 : : { 4467 : : #ifndef NRF52_SERIES 4468 : 0 : return false; 4469 : : #else 4470 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 4471 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4472 : : uint32_t var1; 4473 : : uint32_t var2; 4474 : : 4475 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 4476 : : { 4477 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 4478 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 4479 : : } 4480 : : else 4481 : : { 4482 : : var1 = *(uint32_t *)0x10000130ul; 4483 : : var2 = *(uint32_t *)0x10000134ul; 4484 : : } 4485 : : #endif 4486 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 4487 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4488 : : if (var1 == 0x06) 4489 : : { 4490 : : switch(var2) 4491 : : { 4492 : : case 0x03ul: 4493 : : return true; 4494 : : case 0x04ul: 4495 : : return true; 4496 : : case 0x05ul: 4497 : : return true; 4498 : : case 0x06ul: 4499 : : return true; 4500 : : case 0x07ul: 4501 : : return true; 4502 : : default: 4503 : : return true; 4504 : : } 4505 : : } 4506 : : #endif 4507 : : return false; 4508 : : #endif 4509 : : } 4510 : : 4511 : : /* ========= Errata 86 ========= */ 4512 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 4513 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4514 : : #define NRF52_ERRATA_86_PRESENT 1 4515 : : #else 4516 : : #define NRF52_ERRATA_86_PRESENT 0 4517 : : #endif 4518 : : 4519 : : #ifndef NRF52_ERRATA_86_ENABLE_WORKAROUND 4520 : : #define NRF52_ERRATA_86_ENABLE_WORKAROUND NRF52_ERRATA_86_PRESENT 4521 : : #endif 4522 : : 4523 : 0 : static bool nrf52_errata_86(void) 4524 : : { 4525 : : #ifndef NRF52_SERIES 4526 : 0 : return false; 4527 : : #else 4528 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 4529 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4530 : : uint32_t var1; 4531 : : uint32_t var2; 4532 : : 4533 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 4534 : : { 4535 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 4536 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 4537 : : } 4538 : : else 4539 : : { 4540 : : var1 = *(uint32_t *)0x10000130ul; 4541 : : var2 = *(uint32_t *)0x10000134ul; 4542 : : } 4543 : : #endif 4544 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 4545 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4546 : : if (var1 == 0x06) 4547 : : { 4548 : : switch(var2) 4549 : : { 4550 : : case 0x03ul: 4551 : : return true; 4552 : : case 0x04ul: 4553 : : return true; 4554 : : case 0x05ul: 4555 : : return true; 4556 : : case 0x06ul: 4557 : : return true; 4558 : : case 0x07ul: 4559 : : return true; 4560 : : default: 4561 : : return true; 4562 : : } 4563 : : } 4564 : : #endif 4565 : : return false; 4566 : : #endif 4567 : : } 4568 : : 4569 : : /* ========= Errata 87 ========= */ 4570 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 4571 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 4572 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 4573 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 4574 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 4575 : : #define NRF52_ERRATA_87_PRESENT 1 4576 : : #else 4577 : : #define NRF52_ERRATA_87_PRESENT 0 4578 : : #endif 4579 : : 4580 : : #ifndef NRF52_ERRATA_87_ENABLE_WORKAROUND 4581 : : #define NRF52_ERRATA_87_ENABLE_WORKAROUND NRF52_ERRATA_87_PRESENT 4582 : : #endif 4583 : : 4584 : 0 : static bool nrf52_errata_87(void) 4585 : : { 4586 : : #ifndef NRF52_SERIES 4587 : 0 : return false; 4588 : : #else 4589 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 4590 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4591 : : uint32_t var1; 4592 : : uint32_t var2; 4593 : : 4594 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 4595 : : { 4596 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 4597 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 4598 : : } 4599 : : else 4600 : : { 4601 : : var1 = *(uint32_t *)0x10000130ul; 4602 : : var2 = *(uint32_t *)0x10000134ul; 4603 : : } 4604 : : #elif defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 4605 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 4606 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 4607 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 4608 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 4609 : : #endif 4610 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 4611 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4612 : : if (var1 == 0x06) 4613 : : { 4614 : : switch(var2) 4615 : : { 4616 : : case 0x03ul: 4617 : : return true; 4618 : : case 0x04ul: 4619 : : return true; 4620 : : case 0x05ul: 4621 : : return true; 4622 : : case 0x06ul: 4623 : : return true; 4624 : : case 0x07ul: 4625 : : return true; 4626 : : default: 4627 : : return true; 4628 : : } 4629 : : } 4630 : : #endif 4631 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 4632 : : if (var1 == 0x08) 4633 : : { 4634 : : switch(var2) 4635 : : { 4636 : : case 0x00ul: 4637 : : return true; 4638 : : case 0x01ul: 4639 : : return true; 4640 : : case 0x02ul: 4641 : : return true; 4642 : : case 0x03ul: 4643 : : return true; 4644 : : case 0x04ul: 4645 : : return true; 4646 : : case 0x05ul: 4647 : : return true; 4648 : : default: 4649 : : return true; 4650 : : } 4651 : : } 4652 : : #endif 4653 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 4654 : : if (var1 == 0x0D) 4655 : : { 4656 : : switch(var2) 4657 : : { 4658 : : case 0x00ul: 4659 : : return true; 4660 : : case 0x01ul: 4661 : : return true; 4662 : : default: 4663 : : return true; 4664 : : } 4665 : : } 4666 : : #endif 4667 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 4668 : : if (var1 == 0x10) 4669 : : { 4670 : : switch(var2) 4671 : : { 4672 : : case 0x00ul: 4673 : : return true; 4674 : : case 0x01ul: 4675 : : return true; 4676 : : case 0x02ul: 4677 : : return false; 4678 : : case 0x03ul: 4679 : : return false; 4680 : : default: 4681 : : return false; 4682 : : } 4683 : : } 4684 : : #endif 4685 : : return false; 4686 : : #endif 4687 : : } 4688 : : 4689 : : /* ========= Errata 88 ========= */ 4690 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 4691 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 4692 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 4693 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 4694 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4695 : : #define NRF52_ERRATA_88_PRESENT 1 4696 : : #else 4697 : : #define NRF52_ERRATA_88_PRESENT 0 4698 : : #endif 4699 : : 4700 : : #ifndef NRF52_ERRATA_88_ENABLE_WORKAROUND 4701 : : #define NRF52_ERRATA_88_ENABLE_WORKAROUND NRF52_ERRATA_88_PRESENT 4702 : : #endif 4703 : : 4704 : 0 : static bool nrf52_errata_88(void) 4705 : : { 4706 : : #ifndef NRF52_SERIES 4707 : 0 : return false; 4708 : : #else 4709 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 4710 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4711 : : uint32_t var1; 4712 : : uint32_t var2; 4713 : : 4714 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 4715 : : { 4716 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 4717 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 4718 : : } 4719 : : else 4720 : : { 4721 : : var1 = *(uint32_t *)0x10000130ul; 4722 : : var2 = *(uint32_t *)0x10000134ul; 4723 : : } 4724 : : #elif defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 4725 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 4726 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 4727 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 4728 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 4729 : : #endif 4730 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 4731 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4732 : : if (var1 == 0x06) 4733 : : { 4734 : : switch(var2) 4735 : : { 4736 : : case 0x03ul: 4737 : : return true; 4738 : : case 0x04ul: 4739 : : return true; 4740 : : case 0x05ul: 4741 : : return true; 4742 : : case 0x06ul: 4743 : : return true; 4744 : : case 0x07ul: 4745 : : return true; 4746 : : default: 4747 : : return true; 4748 : : } 4749 : : } 4750 : : #endif 4751 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 4752 : : if (var1 == 0x0A) 4753 : : { 4754 : : switch(var2) 4755 : : { 4756 : : case 0x00ul: 4757 : : return true; 4758 : : case 0x01ul: 4759 : : return true; 4760 : : case 0x02ul: 4761 : : return true; 4762 : : default: 4763 : : return true; 4764 : : } 4765 : : } 4766 : : #endif 4767 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 4768 : : if (var1 == 0x0E) 4769 : : { 4770 : : switch(var2) 4771 : : { 4772 : : case 0x00ul: 4773 : : return true; 4774 : : case 0x01ul: 4775 : : return true; 4776 : : default: 4777 : : return true; 4778 : : } 4779 : : } 4780 : : #endif 4781 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 4782 : : if (var1 == 0x0F) 4783 : : { 4784 : : switch(var2) 4785 : : { 4786 : : case 0x00ul: 4787 : : return true; 4788 : : case 0x01ul: 4789 : : return true; 4790 : : default: 4791 : : return true; 4792 : : } 4793 : : } 4794 : : #endif 4795 : : return false; 4796 : : #endif 4797 : : } 4798 : : 4799 : : /* ========= Errata 89 ========= */ 4800 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 4801 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 4802 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 4803 : : #define NRF52_ERRATA_89_PRESENT 1 4804 : : #else 4805 : : #define NRF52_ERRATA_89_PRESENT 0 4806 : : #endif 4807 : : 4808 : : #ifndef NRF52_ERRATA_89_ENABLE_WORKAROUND 4809 : : #define NRF52_ERRATA_89_ENABLE_WORKAROUND NRF52_ERRATA_89_PRESENT 4810 : : #endif 4811 : : 4812 : 0 : static bool nrf52_errata_89(void) 4813 : : { 4814 : : #ifndef NRF52_SERIES 4815 : 0 : return false; 4816 : : #else 4817 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 4818 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4819 : : uint32_t var1; 4820 : : uint32_t var2; 4821 : : 4822 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 4823 : : { 4824 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 4825 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 4826 : : } 4827 : : else 4828 : : { 4829 : : var1 = *(uint32_t *)0x10000130ul; 4830 : : var2 = *(uint32_t *)0x10000134ul; 4831 : : } 4832 : : #elif defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 4833 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 4834 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 4835 : : #endif 4836 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 4837 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4838 : : if (var1 == 0x06) 4839 : : { 4840 : : switch(var2) 4841 : : { 4842 : : case 0x03ul: 4843 : : return false; 4844 : : case 0x04ul: 4845 : : return true; 4846 : : case 0x05ul: 4847 : : return true; 4848 : : case 0x06ul: 4849 : : return true; 4850 : : case 0x07ul: 4851 : : return true; 4852 : : default: 4853 : : return true; 4854 : : } 4855 : : } 4856 : : #endif 4857 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 4858 : : if (var1 == 0x08) 4859 : : { 4860 : : switch(var2) 4861 : : { 4862 : : case 0x00ul: 4863 : : return true; 4864 : : case 0x01ul: 4865 : : return false; 4866 : : case 0x02ul: 4867 : : return false; 4868 : : case 0x03ul: 4869 : : return false; 4870 : : case 0x04ul: 4871 : : return false; 4872 : : case 0x05ul: 4873 : : return false; 4874 : : default: 4875 : : return false; 4876 : : } 4877 : : } 4878 : : #endif 4879 : : return false; 4880 : : #endif 4881 : : } 4882 : : 4883 : : /* ========= Errata 91 ========= */ 4884 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 4885 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4886 : : #define NRF52_ERRATA_91_PRESENT 1 4887 : : #else 4888 : : #define NRF52_ERRATA_91_PRESENT 0 4889 : : #endif 4890 : : 4891 : : #ifndef NRF52_ERRATA_91_ENABLE_WORKAROUND 4892 : : #define NRF52_ERRATA_91_ENABLE_WORKAROUND NRF52_ERRATA_91_PRESENT 4893 : : #endif 4894 : : 4895 : 0 : static bool nrf52_errata_91(void) 4896 : : { 4897 : : #ifndef NRF52_SERIES 4898 : 0 : return false; 4899 : : #else 4900 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 4901 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4902 : : uint32_t var1; 4903 : : uint32_t var2; 4904 : : 4905 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 4906 : : { 4907 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 4908 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 4909 : : } 4910 : : else 4911 : : { 4912 : : var1 = *(uint32_t *)0x10000130ul; 4913 : : var2 = *(uint32_t *)0x10000134ul; 4914 : : } 4915 : : #endif 4916 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 4917 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 4918 : : if (var1 == 0x06) 4919 : : { 4920 : : switch(var2) 4921 : : { 4922 : : case 0x03ul: 4923 : : return false; 4924 : : case 0x04ul: 4925 : : return false; 4926 : : case 0x05ul: 4927 : : return true; 4928 : : case 0x06ul: 4929 : : return true; 4930 : : case 0x07ul: 4931 : : return false; 4932 : : default: 4933 : : return false; 4934 : : } 4935 : : } 4936 : : #endif 4937 : : return false; 4938 : : #endif 4939 : : } 4940 : : 4941 : : /* ========= Errata 94 ========= */ 4942 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 4943 : : #define NRF52_ERRATA_94_PRESENT 1 4944 : : #else 4945 : : #define NRF52_ERRATA_94_PRESENT 0 4946 : : #endif 4947 : : 4948 : : #ifndef NRF52_ERRATA_94_ENABLE_WORKAROUND 4949 : : #define NRF52_ERRATA_94_ENABLE_WORKAROUND NRF52_ERRATA_94_PRESENT 4950 : : #endif 4951 : : 4952 : 0 : static bool nrf52_errata_94(void) 4953 : : { 4954 : : #ifndef NRF52_SERIES 4955 : 0 : return false; 4956 : : #else 4957 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 4958 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 4959 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 4960 : : #endif 4961 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 4962 : : if (var1 == 0x08) 4963 : : { 4964 : : switch(var2) 4965 : : { 4966 : : case 0x00ul: 4967 : : return true; 4968 : : case 0x01ul: 4969 : : return true; 4970 : : case 0x02ul: 4971 : : return false; 4972 : : case 0x03ul: 4973 : : return false; 4974 : : case 0x04ul: 4975 : : return false; 4976 : : case 0x05ul: 4977 : : return false; 4978 : : default: 4979 : : return false; 4980 : : } 4981 : : } 4982 : : #endif 4983 : : return false; 4984 : : #endif 4985 : : } 4986 : : 4987 : : /* ========= Errata 96 ========= */ 4988 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 4989 : : #define NRF52_ERRATA_96_PRESENT 1 4990 : : #else 4991 : : #define NRF52_ERRATA_96_PRESENT 0 4992 : : #endif 4993 : : 4994 : : #ifndef NRF52_ERRATA_96_ENABLE_WORKAROUND 4995 : : #define NRF52_ERRATA_96_ENABLE_WORKAROUND NRF52_ERRATA_96_PRESENT 4996 : : #endif 4997 : : 4998 : 0 : static bool nrf52_errata_96(void) 4999 : : { 5000 : : #ifndef NRF52_SERIES 5001 : 0 : return false; 5002 : : #else 5003 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5004 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 5005 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 5006 : : #endif 5007 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5008 : : if (var1 == 0x08) 5009 : : { 5010 : : switch(var2) 5011 : : { 5012 : : case 0x00ul: 5013 : : return true; 5014 : : case 0x01ul: 5015 : : return false; 5016 : : case 0x02ul: 5017 : : return false; 5018 : : case 0x03ul: 5019 : : return false; 5020 : : case 0x04ul: 5021 : : return false; 5022 : : case 0x05ul: 5023 : : return false; 5024 : : default: 5025 : : return false; 5026 : : } 5027 : : } 5028 : : #endif 5029 : : return false; 5030 : : #endif 5031 : : } 5032 : : 5033 : : /* ========= Errata 97 ========= */ 5034 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 5035 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 5036 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5037 : : #define NRF52_ERRATA_97_PRESENT 1 5038 : : #else 5039 : : #define NRF52_ERRATA_97_PRESENT 0 5040 : : #endif 5041 : : 5042 : : #ifndef NRF52_ERRATA_97_ENABLE_WORKAROUND 5043 : : #define NRF52_ERRATA_97_ENABLE_WORKAROUND NRF52_ERRATA_97_PRESENT 5044 : : #endif 5045 : : 5046 : 0 : static bool nrf52_errata_97(void) 5047 : : { 5048 : : #ifndef NRF52_SERIES 5049 : 0 : return false; 5050 : : #else 5051 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 5052 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 5053 : : uint32_t var1; 5054 : : uint32_t var2; 5055 : : 5056 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 5057 : : { 5058 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 5059 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 5060 : : } 5061 : : else 5062 : : { 5063 : : var1 = *(uint32_t *)0x10000130ul; 5064 : : var2 = *(uint32_t *)0x10000134ul; 5065 : : } 5066 : : #elif defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5067 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 5068 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 5069 : : #endif 5070 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 5071 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 5072 : : if (var1 == 0x06) 5073 : : { 5074 : : switch(var2) 5075 : : { 5076 : : case 0x03ul: 5077 : : return true; 5078 : : case 0x04ul: 5079 : : return true; 5080 : : case 0x05ul: 5081 : : return true; 5082 : : case 0x06ul: 5083 : : return true; 5084 : : case 0x07ul: 5085 : : return true; 5086 : : default: 5087 : : return true; 5088 : : } 5089 : : } 5090 : : #endif 5091 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5092 : : if (var1 == 0x08) 5093 : : { 5094 : : switch(var2) 5095 : : { 5096 : : case 0x00ul: 5097 : : return true; 5098 : : case 0x01ul: 5099 : : return false; 5100 : : case 0x02ul: 5101 : : return false; 5102 : : case 0x03ul: 5103 : : return false; 5104 : : case 0x04ul: 5105 : : return false; 5106 : : case 0x05ul: 5107 : : return false; 5108 : : default: 5109 : : return false; 5110 : : } 5111 : : } 5112 : : #endif 5113 : : return false; 5114 : : #endif 5115 : : } 5116 : : 5117 : : /* ========= Errata 98 ========= */ 5118 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5119 : : #define NRF52_ERRATA_98_PRESENT 1 5120 : : #else 5121 : : #define NRF52_ERRATA_98_PRESENT 0 5122 : : #endif 5123 : : 5124 : : #ifndef NRF52_ERRATA_98_ENABLE_WORKAROUND 5125 : : #define NRF52_ERRATA_98_ENABLE_WORKAROUND NRF52_ERRATA_98_PRESENT 5126 : : #endif 5127 : : 5128 : 0 : static bool nrf52_errata_98(void) 5129 : : { 5130 : : #ifndef NRF52_SERIES 5131 : 0 : return false; 5132 : : #else 5133 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5134 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 5135 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 5136 : : #endif 5137 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5138 : : if (var1 == 0x08) 5139 : : { 5140 : : switch(var2) 5141 : : { 5142 : : case 0x00ul: 5143 : : return true; 5144 : : case 0x01ul: 5145 : : return false; 5146 : : case 0x02ul: 5147 : : return false; 5148 : : case 0x03ul: 5149 : : return false; 5150 : : case 0x04ul: 5151 : : return false; 5152 : : case 0x05ul: 5153 : : return false; 5154 : : default: 5155 : : return false; 5156 : : } 5157 : : } 5158 : : #endif 5159 : : return false; 5160 : : #endif 5161 : : } 5162 : : 5163 : : /* ========= Errata 101 ========= */ 5164 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 5165 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 5166 : : #define NRF52_ERRATA_101_PRESENT 1 5167 : : #else 5168 : : #define NRF52_ERRATA_101_PRESENT 0 5169 : : #endif 5170 : : 5171 : : #ifndef NRF52_ERRATA_101_ENABLE_WORKAROUND 5172 : : #define NRF52_ERRATA_101_ENABLE_WORKAROUND NRF52_ERRATA_101_PRESENT 5173 : : #endif 5174 : : 5175 : 0 : static bool nrf52_errata_101(void) 5176 : : { 5177 : : #ifndef NRF52_SERIES 5178 : 0 : return false; 5179 : : #else 5180 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 5181 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 5182 : : uint32_t var1; 5183 : : uint32_t var2; 5184 : : 5185 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 5186 : : { 5187 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 5188 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 5189 : : } 5190 : : else 5191 : : { 5192 : : var1 = *(uint32_t *)0x10000130ul; 5193 : : var2 = *(uint32_t *)0x10000134ul; 5194 : : } 5195 : : #endif 5196 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 5197 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 5198 : : if (var1 == 0x06) 5199 : : { 5200 : : switch(var2) 5201 : : { 5202 : : case 0x03ul: 5203 : : return false; 5204 : : case 0x04ul: 5205 : : return true; 5206 : : case 0x05ul: 5207 : : return true; 5208 : : case 0x06ul: 5209 : : return true; 5210 : : case 0x07ul: 5211 : : return true; 5212 : : default: 5213 : : return true; 5214 : : } 5215 : : } 5216 : : #endif 5217 : : return false; 5218 : : #endif 5219 : : } 5220 : : 5221 : : /* ========= Errata 102 ========= */ 5222 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 5223 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 5224 : : #define NRF52_ERRATA_102_PRESENT 1 5225 : : #else 5226 : : #define NRF52_ERRATA_102_PRESENT 0 5227 : : #endif 5228 : : 5229 : : #ifndef NRF52_ERRATA_102_ENABLE_WORKAROUND 5230 : : #define NRF52_ERRATA_102_ENABLE_WORKAROUND NRF52_ERRATA_102_PRESENT 5231 : : #endif 5232 : : 5233 : 0 : static bool nrf52_errata_102(void) 5234 : : { 5235 : : #ifndef NRF52_SERIES 5236 : 0 : return false; 5237 : : #else 5238 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 5239 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 5240 : : uint32_t var1; 5241 : : uint32_t var2; 5242 : : 5243 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 5244 : : { 5245 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 5246 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 5247 : : } 5248 : : else 5249 : : { 5250 : : var1 = *(uint32_t *)0x10000130ul; 5251 : : var2 = *(uint32_t *)0x10000134ul; 5252 : : } 5253 : : #endif 5254 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 5255 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 5256 : : if (var1 == 0x06) 5257 : : { 5258 : : switch(var2) 5259 : : { 5260 : : case 0x03ul: 5261 : : return false; 5262 : : case 0x04ul: 5263 : : return true; 5264 : : case 0x05ul: 5265 : : return true; 5266 : : case 0x06ul: 5267 : : return false; 5268 : : case 0x07ul: 5269 : : return false; 5270 : : default: 5271 : : return false; 5272 : : } 5273 : : } 5274 : : #endif 5275 : : return false; 5276 : : #endif 5277 : : } 5278 : : 5279 : : /* ========= Errata 103 ========= */ 5280 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5281 : : #define NRF52_ERRATA_103_PRESENT 1 5282 : : #else 5283 : : #define NRF52_ERRATA_103_PRESENT 0 5284 : : #endif 5285 : : 5286 : : #ifndef NRF52_ERRATA_103_ENABLE_WORKAROUND 5287 : : #define NRF52_ERRATA_103_ENABLE_WORKAROUND NRF52_ERRATA_103_PRESENT 5288 : : #endif 5289 : : 5290 : 0 : static bool nrf52_errata_103(void) 5291 : : { 5292 : : #ifndef NRF52_SERIES 5293 : 0 : return false; 5294 : : #else 5295 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5296 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 5297 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 5298 : : #endif 5299 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5300 : : if (var1 == 0x08) 5301 : : { 5302 : : switch(var2) 5303 : : { 5304 : : case 0x00ul: 5305 : : return true; 5306 : : case 0x01ul: 5307 : : return false; 5308 : : case 0x02ul: 5309 : : return false; 5310 : : case 0x03ul: 5311 : : return false; 5312 : : case 0x04ul: 5313 : : return false; 5314 : : case 0x05ul: 5315 : : return false; 5316 : : default: 5317 : : return false; 5318 : : } 5319 : : } 5320 : : #endif 5321 : : return false; 5322 : : #endif 5323 : : } 5324 : : 5325 : : /* ========= Errata 104 ========= */ 5326 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5327 : : #define NRF52_ERRATA_104_PRESENT 1 5328 : : #else 5329 : : #define NRF52_ERRATA_104_PRESENT 0 5330 : : #endif 5331 : : 5332 : : #ifndef NRF52_ERRATA_104_ENABLE_WORKAROUND 5333 : : #define NRF52_ERRATA_104_ENABLE_WORKAROUND NRF52_ERRATA_104_PRESENT 5334 : : #endif 5335 : : 5336 : 0 : static bool nrf52_errata_104(void) 5337 : : { 5338 : : #ifndef NRF52_SERIES 5339 : 0 : return false; 5340 : : #else 5341 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5342 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 5343 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 5344 : : #endif 5345 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5346 : : if (var1 == 0x08) 5347 : : { 5348 : : switch(var2) 5349 : : { 5350 : : case 0x00ul: 5351 : : return true; 5352 : : case 0x01ul: 5353 : : return false; 5354 : : case 0x02ul: 5355 : : return false; 5356 : : case 0x03ul: 5357 : : return false; 5358 : : case 0x04ul: 5359 : : return false; 5360 : : case 0x05ul: 5361 : : return false; 5362 : : default: 5363 : : return false; 5364 : : } 5365 : : } 5366 : : #endif 5367 : : return false; 5368 : : #endif 5369 : : } 5370 : : 5371 : : /* ========= Errata 106 ========= */ 5372 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 5373 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 5374 : : #define NRF52_ERRATA_106_PRESENT 1 5375 : : #else 5376 : : #define NRF52_ERRATA_106_PRESENT 0 5377 : : #endif 5378 : : 5379 : : #ifndef NRF52_ERRATA_106_ENABLE_WORKAROUND 5380 : : #define NRF52_ERRATA_106_ENABLE_WORKAROUND NRF52_ERRATA_106_PRESENT 5381 : : #endif 5382 : : 5383 : 0 : static bool nrf52_errata_106(void) 5384 : : { 5385 : : #ifndef NRF52_SERIES 5386 : 0 : return false; 5387 : : #else 5388 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 5389 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 5390 : : uint32_t var1; 5391 : : uint32_t var2; 5392 : : 5393 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 5394 : : { 5395 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 5396 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 5397 : : } 5398 : : else 5399 : : { 5400 : : var1 = *(uint32_t *)0x10000130ul; 5401 : : var2 = *(uint32_t *)0x10000134ul; 5402 : : } 5403 : : #endif 5404 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 5405 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 5406 : : if (var1 == 0x06) 5407 : : { 5408 : : switch(var2) 5409 : : { 5410 : : case 0x03ul: 5411 : : return false; 5412 : : case 0x04ul: 5413 : : return false; 5414 : : case 0x05ul: 5415 : : return true; 5416 : : case 0x06ul: 5417 : : return false; 5418 : : case 0x07ul: 5419 : : return false; 5420 : : default: 5421 : : return false; 5422 : : } 5423 : : } 5424 : : #endif 5425 : : return false; 5426 : : #endif 5427 : : } 5428 : : 5429 : : /* ========= Errata 107 ========= */ 5430 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 5431 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 5432 : : #define NRF52_ERRATA_107_PRESENT 1 5433 : : #else 5434 : : #define NRF52_ERRATA_107_PRESENT 0 5435 : : #endif 5436 : : 5437 : : #ifndef NRF52_ERRATA_107_ENABLE_WORKAROUND 5438 : : #define NRF52_ERRATA_107_ENABLE_WORKAROUND NRF52_ERRATA_107_PRESENT 5439 : : #endif 5440 : : 5441 : 0 : static bool nrf52_errata_107(void) 5442 : : { 5443 : : #ifndef NRF52_SERIES 5444 : 0 : return false; 5445 : : #else 5446 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 5447 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 5448 : : uint32_t var1; 5449 : : uint32_t var2; 5450 : : 5451 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 5452 : : { 5453 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 5454 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 5455 : : } 5456 : : else 5457 : : { 5458 : : var1 = *(uint32_t *)0x10000130ul; 5459 : : var2 = *(uint32_t *)0x10000134ul; 5460 : : } 5461 : : #endif 5462 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 5463 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 5464 : : if (var1 == 0x06) 5465 : : { 5466 : : switch(var2) 5467 : : { 5468 : : case 0x03ul: 5469 : : return false; 5470 : : case 0x04ul: 5471 : : return false; 5472 : : case 0x05ul: 5473 : : return true; 5474 : : case 0x06ul: 5475 : : return false; 5476 : : case 0x07ul: 5477 : : return false; 5478 : : default: 5479 : : return false; 5480 : : } 5481 : : } 5482 : : #endif 5483 : : return false; 5484 : : #endif 5485 : : } 5486 : : 5487 : : /* ========= Errata 108 ========= */ 5488 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 5489 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 5490 : : #define NRF52_ERRATA_108_PRESENT 1 5491 : : #else 5492 : : #define NRF52_ERRATA_108_PRESENT 0 5493 : : #endif 5494 : : 5495 : : #ifndef NRF52_ERRATA_108_ENABLE_WORKAROUND 5496 : : #define NRF52_ERRATA_108_ENABLE_WORKAROUND NRF52_ERRATA_108_PRESENT 5497 : : #endif 5498 : : 5499 : 0 : static bool nrf52_errata_108(void) 5500 : : { 5501 : : #ifndef NRF52_SERIES 5502 : 0 : return false; 5503 : : #else 5504 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 5505 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 5506 : : uint32_t var1; 5507 : : uint32_t var2; 5508 : : 5509 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 5510 : : { 5511 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 5512 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 5513 : : } 5514 : : else 5515 : : { 5516 : : var1 = *(uint32_t *)0x10000130ul; 5517 : : var2 = *(uint32_t *)0x10000134ul; 5518 : : } 5519 : : #endif 5520 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 5521 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 5522 : : if (var1 == 0x06) 5523 : : { 5524 : : switch(var2) 5525 : : { 5526 : : case 0x03ul: 5527 : : return true; 5528 : : case 0x04ul: 5529 : : return true; 5530 : : case 0x05ul: 5531 : : return true; 5532 : : case 0x06ul: 5533 : : return true; 5534 : : case 0x07ul: 5535 : : return true; 5536 : : default: 5537 : : return true; 5538 : : } 5539 : : } 5540 : : #endif 5541 : : return false; 5542 : : #endif 5543 : : } 5544 : : 5545 : : /* ========= Errata 109 ========= */ 5546 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 5547 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 5548 : : #define NRF52_ERRATA_109_PRESENT 1 5549 : : #else 5550 : : #define NRF52_ERRATA_109_PRESENT 0 5551 : : #endif 5552 : : 5553 : : #ifndef NRF52_ERRATA_109_ENABLE_WORKAROUND 5554 : : #define NRF52_ERRATA_109_ENABLE_WORKAROUND NRF52_ERRATA_109_PRESENT 5555 : : #endif 5556 : : 5557 : 0 : static bool nrf52_errata_109(void) 5558 : : { 5559 : : #ifndef NRF52_SERIES 5560 : 0 : return false; 5561 : : #else 5562 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 5563 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 5564 : : uint32_t var1; 5565 : : uint32_t var2; 5566 : : 5567 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 5568 : : { 5569 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 5570 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 5571 : : } 5572 : : else 5573 : : { 5574 : : var1 = *(uint32_t *)0x10000130ul; 5575 : : var2 = *(uint32_t *)0x10000134ul; 5576 : : } 5577 : : #endif 5578 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 5579 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 5580 : : if (var1 == 0x06) 5581 : : { 5582 : : switch(var2) 5583 : : { 5584 : : case 0x03ul: 5585 : : return false; 5586 : : case 0x04ul: 5587 : : return false; 5588 : : case 0x05ul: 5589 : : return true; 5590 : : case 0x06ul: 5591 : : return true; 5592 : : case 0x07ul: 5593 : : return true; 5594 : : default: 5595 : : return true; 5596 : : } 5597 : : } 5598 : : #endif 5599 : : return false; 5600 : : #endif 5601 : : } 5602 : : 5603 : : /* ========= Errata 110 ========= */ 5604 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5605 : : #define NRF52_ERRATA_110_PRESENT 1 5606 : : #else 5607 : : #define NRF52_ERRATA_110_PRESENT 0 5608 : : #endif 5609 : : 5610 : : #ifndef NRF52_ERRATA_110_ENABLE_WORKAROUND 5611 : : #define NRF52_ERRATA_110_ENABLE_WORKAROUND NRF52_ERRATA_110_PRESENT 5612 : : #endif 5613 : : 5614 : 0 : static bool nrf52_errata_110(void) 5615 : : { 5616 : : #ifndef NRF52_SERIES 5617 : 0 : return false; 5618 : : #else 5619 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5620 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 5621 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 5622 : : #endif 5623 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5624 : : if (var1 == 0x08) 5625 : : { 5626 : : switch(var2) 5627 : : { 5628 : : case 0x00ul: 5629 : : return true; 5630 : : case 0x01ul: 5631 : : return false; 5632 : : case 0x02ul: 5633 : : return false; 5634 : : case 0x03ul: 5635 : : return false; 5636 : : case 0x04ul: 5637 : : return false; 5638 : : case 0x05ul: 5639 : : return false; 5640 : : default: 5641 : : return false; 5642 : : } 5643 : : } 5644 : : #endif 5645 : : return false; 5646 : : #endif 5647 : : } 5648 : : 5649 : : /* ========= Errata 111 ========= */ 5650 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5651 : : #define NRF52_ERRATA_111_PRESENT 1 5652 : : #else 5653 : : #define NRF52_ERRATA_111_PRESENT 0 5654 : : #endif 5655 : : 5656 : : #ifndef NRF52_ERRATA_111_ENABLE_WORKAROUND 5657 : : #define NRF52_ERRATA_111_ENABLE_WORKAROUND NRF52_ERRATA_111_PRESENT 5658 : : #endif 5659 : : 5660 : 0 : static bool nrf52_errata_111(void) 5661 : : { 5662 : : #ifndef NRF52_SERIES 5663 : 0 : return false; 5664 : : #else 5665 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5666 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 5667 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 5668 : : #endif 5669 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5670 : : if (var1 == 0x08) 5671 : : { 5672 : : switch(var2) 5673 : : { 5674 : : case 0x00ul: 5675 : : return true; 5676 : : case 0x01ul: 5677 : : return false; 5678 : : case 0x02ul: 5679 : : return false; 5680 : : case 0x03ul: 5681 : : return false; 5682 : : case 0x04ul: 5683 : : return false; 5684 : : case 0x05ul: 5685 : : return false; 5686 : : default: 5687 : : return false; 5688 : : } 5689 : : } 5690 : : #endif 5691 : : return false; 5692 : : #endif 5693 : : } 5694 : : 5695 : : /* ========= Errata 112 ========= */ 5696 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5697 : : #define NRF52_ERRATA_112_PRESENT 1 5698 : : #else 5699 : : #define NRF52_ERRATA_112_PRESENT 0 5700 : : #endif 5701 : : 5702 : : #ifndef NRF52_ERRATA_112_ENABLE_WORKAROUND 5703 : : #define NRF52_ERRATA_112_ENABLE_WORKAROUND NRF52_ERRATA_112_PRESENT 5704 : : #endif 5705 : : 5706 : 0 : static bool nrf52_errata_112(void) 5707 : : { 5708 : : #ifndef NRF52_SERIES 5709 : 0 : return false; 5710 : : #else 5711 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5712 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 5713 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 5714 : : #endif 5715 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5716 : : if (var1 == 0x08) 5717 : : { 5718 : : switch(var2) 5719 : : { 5720 : : case 0x00ul: 5721 : : return true; 5722 : : case 0x01ul: 5723 : : return false; 5724 : : case 0x02ul: 5725 : : return false; 5726 : : case 0x03ul: 5727 : : return false; 5728 : : case 0x04ul: 5729 : : return false; 5730 : : case 0x05ul: 5731 : : return false; 5732 : : default: 5733 : : return false; 5734 : : } 5735 : : } 5736 : : #endif 5737 : : return false; 5738 : : #endif 5739 : : } 5740 : : 5741 : : /* ========= Errata 113 ========= */ 5742 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 5743 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 5744 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5745 : : #define NRF52_ERRATA_113_PRESENT 1 5746 : : #else 5747 : : #define NRF52_ERRATA_113_PRESENT 0 5748 : : #endif 5749 : : 5750 : : #ifndef NRF52_ERRATA_113_ENABLE_WORKAROUND 5751 : : #define NRF52_ERRATA_113_ENABLE_WORKAROUND NRF52_ERRATA_113_PRESENT 5752 : : #endif 5753 : : 5754 : 0 : static bool nrf52_errata_113(void) 5755 : : { 5756 : : #ifndef NRF52_SERIES 5757 : 0 : return false; 5758 : : #else 5759 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 5760 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 5761 : : uint32_t var1; 5762 : : uint32_t var2; 5763 : : 5764 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 5765 : : { 5766 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 5767 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 5768 : : } 5769 : : else 5770 : : { 5771 : : var1 = *(uint32_t *)0x10000130ul; 5772 : : var2 = *(uint32_t *)0x10000134ul; 5773 : : } 5774 : : #elif defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5775 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 5776 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 5777 : : #endif 5778 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 5779 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 5780 : : if (var1 == 0x06) 5781 : : { 5782 : : switch(var2) 5783 : : { 5784 : : case 0x03ul: 5785 : : return false; 5786 : : case 0x04ul: 5787 : : return false; 5788 : : case 0x05ul: 5789 : : return true; 5790 : : case 0x06ul: 5791 : : return true; 5792 : : case 0x07ul: 5793 : : return true; 5794 : : default: 5795 : : return true; 5796 : : } 5797 : : } 5798 : : #endif 5799 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5800 : : if (var1 == 0x08) 5801 : : { 5802 : : switch(var2) 5803 : : { 5804 : : case 0x00ul: 5805 : : return true; 5806 : : case 0x01ul: 5807 : : return false; 5808 : : case 0x02ul: 5809 : : return false; 5810 : : case 0x03ul: 5811 : : return false; 5812 : : case 0x04ul: 5813 : : return false; 5814 : : case 0x05ul: 5815 : : return false; 5816 : : default: 5817 : : return false; 5818 : : } 5819 : : } 5820 : : #endif 5821 : : return false; 5822 : : #endif 5823 : : } 5824 : : 5825 : : /* ========= Errata 115 ========= */ 5826 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5827 : : #define NRF52_ERRATA_115_PRESENT 1 5828 : : #else 5829 : : #define NRF52_ERRATA_115_PRESENT 0 5830 : : #endif 5831 : : 5832 : : #ifndef NRF52_ERRATA_115_ENABLE_WORKAROUND 5833 : : #define NRF52_ERRATA_115_ENABLE_WORKAROUND NRF52_ERRATA_115_PRESENT 5834 : : #endif 5835 : : 5836 : 0 : static bool nrf52_errata_115(void) 5837 : : { 5838 : : #ifndef NRF52_SERIES 5839 : 0 : return false; 5840 : : #else 5841 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5842 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 5843 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 5844 : : #endif 5845 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5846 : : if (var1 == 0x08) 5847 : : { 5848 : : switch(var2) 5849 : : { 5850 : : case 0x00ul: 5851 : : return true; 5852 : : case 0x01ul: 5853 : : return false; 5854 : : case 0x02ul: 5855 : : return false; 5856 : : case 0x03ul: 5857 : : return false; 5858 : : case 0x04ul: 5859 : : return false; 5860 : : case 0x05ul: 5861 : : return false; 5862 : : default: 5863 : : return false; 5864 : : } 5865 : : } 5866 : : #endif 5867 : : return false; 5868 : : #endif 5869 : : } 5870 : : 5871 : : /* ========= Errata 116 ========= */ 5872 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5873 : : #define NRF52_ERRATA_116_PRESENT 1 5874 : : #else 5875 : : #define NRF52_ERRATA_116_PRESENT 0 5876 : : #endif 5877 : : 5878 : : #ifndef NRF52_ERRATA_116_ENABLE_WORKAROUND 5879 : : #define NRF52_ERRATA_116_ENABLE_WORKAROUND NRF52_ERRATA_116_PRESENT 5880 : : #endif 5881 : : 5882 : 0 : static bool nrf52_errata_116(void) 5883 : : { 5884 : : #ifndef NRF52_SERIES 5885 : 0 : return false; 5886 : : #else 5887 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5888 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 5889 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 5890 : : #endif 5891 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5892 : : if (var1 == 0x08) 5893 : : { 5894 : : switch(var2) 5895 : : { 5896 : : case 0x00ul: 5897 : : return true; 5898 : : case 0x01ul: 5899 : : return false; 5900 : : case 0x02ul: 5901 : : return false; 5902 : : case 0x03ul: 5903 : : return false; 5904 : : case 0x04ul: 5905 : : return false; 5906 : : case 0x05ul: 5907 : : return false; 5908 : : default: 5909 : : return false; 5910 : : } 5911 : : } 5912 : : #endif 5913 : : return false; 5914 : : #endif 5915 : : } 5916 : : 5917 : : /* ========= Errata 117 ========= */ 5918 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5919 : : #define NRF52_ERRATA_117_PRESENT 1 5920 : : #else 5921 : : #define NRF52_ERRATA_117_PRESENT 0 5922 : : #endif 5923 : : 5924 : : #ifndef NRF52_ERRATA_117_ENABLE_WORKAROUND 5925 : : #define NRF52_ERRATA_117_ENABLE_WORKAROUND NRF52_ERRATA_117_PRESENT 5926 : : #endif 5927 : : 5928 : 0 : static bool nrf52_errata_117(void) 5929 : : { 5930 : : #ifndef NRF52_SERIES 5931 : 0 : return false; 5932 : : #else 5933 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5934 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 5935 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 5936 : : #endif 5937 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5938 : : if (var1 == 0x08) 5939 : : { 5940 : : switch(var2) 5941 : : { 5942 : : case 0x00ul: 5943 : : return true; 5944 : : case 0x01ul: 5945 : : return false; 5946 : : case 0x02ul: 5947 : : return false; 5948 : : case 0x03ul: 5949 : : return false; 5950 : : case 0x04ul: 5951 : : return false; 5952 : : case 0x05ul: 5953 : : return false; 5954 : : default: 5955 : : return false; 5956 : : } 5957 : : } 5958 : : #endif 5959 : : return false; 5960 : : #endif 5961 : : } 5962 : : 5963 : : /* ========= Errata 118 ========= */ 5964 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5965 : : #define NRF52_ERRATA_118_PRESENT 1 5966 : : #else 5967 : : #define NRF52_ERRATA_118_PRESENT 0 5968 : : #endif 5969 : : 5970 : : #ifndef NRF52_ERRATA_118_ENABLE_WORKAROUND 5971 : : #define NRF52_ERRATA_118_ENABLE_WORKAROUND NRF52_ERRATA_118_PRESENT 5972 : : #endif 5973 : : 5974 : 0 : static bool nrf52_errata_118(void) 5975 : : { 5976 : : #ifndef NRF52_SERIES 5977 : 0 : return false; 5978 : : #else 5979 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5980 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 5981 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 5982 : : #endif 5983 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 5984 : : if (var1 == 0x08) 5985 : : { 5986 : : switch(var2) 5987 : : { 5988 : : case 0x00ul: 5989 : : return true; 5990 : : case 0x01ul: 5991 : : return false; 5992 : : case 0x02ul: 5993 : : return false; 5994 : : case 0x03ul: 5995 : : return false; 5996 : : case 0x04ul: 5997 : : return false; 5998 : : case 0x05ul: 5999 : : return false; 6000 : : default: 6001 : : return false; 6002 : : } 6003 : : } 6004 : : #endif 6005 : : return false; 6006 : : #endif 6007 : : } 6008 : : 6009 : : /* ========= Errata 119 ========= */ 6010 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6011 : : #define NRF52_ERRATA_119_PRESENT 1 6012 : : #else 6013 : : #define NRF52_ERRATA_119_PRESENT 0 6014 : : #endif 6015 : : 6016 : : #ifndef NRF52_ERRATA_119_ENABLE_WORKAROUND 6017 : : #define NRF52_ERRATA_119_ENABLE_WORKAROUND NRF52_ERRATA_119_PRESENT 6018 : : #endif 6019 : : 6020 : 0 : static bool nrf52_errata_119(void) 6021 : : { 6022 : : #ifndef NRF52_SERIES 6023 : 0 : return false; 6024 : : #else 6025 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6026 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 6027 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 6028 : : #endif 6029 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6030 : : if (var1 == 0x08) 6031 : : { 6032 : : switch(var2) 6033 : : { 6034 : : case 0x00ul: 6035 : : return true; 6036 : : case 0x01ul: 6037 : : return false; 6038 : : case 0x02ul: 6039 : : return false; 6040 : : case 0x03ul: 6041 : : return false; 6042 : : case 0x04ul: 6043 : : return false; 6044 : : case 0x05ul: 6045 : : return false; 6046 : : default: 6047 : : return false; 6048 : : } 6049 : : } 6050 : : #endif 6051 : : return false; 6052 : : #endif 6053 : : } 6054 : : 6055 : : /* ========= Errata 120 ========= */ 6056 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6057 : : #define NRF52_ERRATA_120_PRESENT 1 6058 : : #else 6059 : : #define NRF52_ERRATA_120_PRESENT 0 6060 : : #endif 6061 : : 6062 : : #ifndef NRF52_ERRATA_120_ENABLE_WORKAROUND 6063 : : #define NRF52_ERRATA_120_ENABLE_WORKAROUND NRF52_ERRATA_120_PRESENT 6064 : : #endif 6065 : : 6066 : 0 : static bool nrf52_errata_120(void) 6067 : : { 6068 : : #ifndef NRF52_SERIES 6069 : 0 : return false; 6070 : : #else 6071 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6072 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 6073 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 6074 : : #endif 6075 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6076 : : if (var1 == 0x08) 6077 : : { 6078 : : switch(var2) 6079 : : { 6080 : : case 0x00ul: 6081 : : return true; 6082 : : case 0x01ul: 6083 : : return false; 6084 : : case 0x02ul: 6085 : : return false; 6086 : : case 0x03ul: 6087 : : return false; 6088 : : case 0x04ul: 6089 : : return false; 6090 : : case 0x05ul: 6091 : : return false; 6092 : : default: 6093 : : return false; 6094 : : } 6095 : : } 6096 : : #endif 6097 : : return false; 6098 : : #endif 6099 : : } 6100 : : 6101 : : /* ========= Errata 121 ========= */ 6102 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6103 : : #define NRF52_ERRATA_121_PRESENT 1 6104 : : #else 6105 : : #define NRF52_ERRATA_121_PRESENT 0 6106 : : #endif 6107 : : 6108 : : #ifndef NRF52_ERRATA_121_ENABLE_WORKAROUND 6109 : : #define NRF52_ERRATA_121_ENABLE_WORKAROUND NRF52_ERRATA_121_PRESENT 6110 : : #endif 6111 : : 6112 : 0 : static bool nrf52_errata_121(void) 6113 : : { 6114 : : #ifndef NRF52_SERIES 6115 : 0 : return false; 6116 : : #else 6117 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6118 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 6119 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 6120 : : #endif 6121 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6122 : : if (var1 == 0x08) 6123 : : { 6124 : : switch(var2) 6125 : : { 6126 : : case 0x00ul: 6127 : : return true; 6128 : : case 0x01ul: 6129 : : return false; 6130 : : case 0x02ul: 6131 : : return false; 6132 : : case 0x03ul: 6133 : : return false; 6134 : : case 0x04ul: 6135 : : return false; 6136 : : case 0x05ul: 6137 : : return false; 6138 : : default: 6139 : : return false; 6140 : : } 6141 : : } 6142 : : #endif 6143 : : return false; 6144 : : #endif 6145 : : } 6146 : : 6147 : : /* ========= Errata 122 ========= */ 6148 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6149 : : #define NRF52_ERRATA_122_PRESENT 1 6150 : : #else 6151 : : #define NRF52_ERRATA_122_PRESENT 0 6152 : : #endif 6153 : : 6154 : : #ifndef NRF52_ERRATA_122_ENABLE_WORKAROUND 6155 : : #define NRF52_ERRATA_122_ENABLE_WORKAROUND NRF52_ERRATA_122_PRESENT 6156 : : #endif 6157 : : 6158 : 0 : static bool nrf52_errata_122(void) 6159 : : { 6160 : : #ifndef NRF52_SERIES 6161 : 0 : return false; 6162 : : #else 6163 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6164 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 6165 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 6166 : : #endif 6167 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6168 : : if (var1 == 0x08) 6169 : : { 6170 : : switch(var2) 6171 : : { 6172 : : case 0x00ul: 6173 : : return true; 6174 : : case 0x01ul: 6175 : : return true; 6176 : : case 0x02ul: 6177 : : return true; 6178 : : case 0x03ul: 6179 : : return true; 6180 : : case 0x04ul: 6181 : : return true; 6182 : : case 0x05ul: 6183 : : return true; 6184 : : default: 6185 : : return true; 6186 : : } 6187 : : } 6188 : : #endif 6189 : : return false; 6190 : : #endif 6191 : : } 6192 : : 6193 : : /* ========= Errata 127 ========= */ 6194 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6195 : : #define NRF52_ERRATA_127_PRESENT 1 6196 : : #else 6197 : : #define NRF52_ERRATA_127_PRESENT 0 6198 : : #endif 6199 : : 6200 : : #ifndef NRF52_ERRATA_127_ENABLE_WORKAROUND 6201 : : #define NRF52_ERRATA_127_ENABLE_WORKAROUND NRF52_ERRATA_127_PRESENT 6202 : : #endif 6203 : : 6204 : 0 : static bool nrf52_errata_127(void) 6205 : : { 6206 : : #ifndef NRF52_SERIES 6207 : 0 : return false; 6208 : : #else 6209 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6210 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 6211 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 6212 : : #endif 6213 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6214 : : if (var1 == 0x08) 6215 : : { 6216 : : switch(var2) 6217 : : { 6218 : : case 0x00ul: 6219 : : return true; 6220 : : case 0x01ul: 6221 : : return false; 6222 : : case 0x02ul: 6223 : : return false; 6224 : : case 0x03ul: 6225 : : return false; 6226 : : case 0x04ul: 6227 : : return false; 6228 : : case 0x05ul: 6229 : : return false; 6230 : : default: 6231 : : return false; 6232 : : } 6233 : : } 6234 : : #endif 6235 : : return false; 6236 : : #endif 6237 : : } 6238 : : 6239 : : /* ========= Errata 128 ========= */ 6240 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6241 : : #define NRF52_ERRATA_128_PRESENT 1 6242 : : #else 6243 : : #define NRF52_ERRATA_128_PRESENT 0 6244 : : #endif 6245 : : 6246 : : #ifndef NRF52_ERRATA_128_ENABLE_WORKAROUND 6247 : : #define NRF52_ERRATA_128_ENABLE_WORKAROUND NRF52_ERRATA_128_PRESENT 6248 : : #endif 6249 : : 6250 : 0 : static bool nrf52_errata_128(void) 6251 : : { 6252 : : #ifndef NRF52_SERIES 6253 : 0 : return false; 6254 : : #else 6255 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6256 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 6257 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 6258 : : #endif 6259 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6260 : : if (var1 == 0x08) 6261 : : { 6262 : : switch(var2) 6263 : : { 6264 : : case 0x00ul: 6265 : : return true; 6266 : : case 0x01ul: 6267 : : return false; 6268 : : case 0x02ul: 6269 : : return false; 6270 : : case 0x03ul: 6271 : : return false; 6272 : : case 0x04ul: 6273 : : return false; 6274 : : case 0x05ul: 6275 : : return false; 6276 : : default: 6277 : : return false; 6278 : : } 6279 : : } 6280 : : #endif 6281 : : return false; 6282 : : #endif 6283 : : } 6284 : : 6285 : : /* ========= Errata 131 ========= */ 6286 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6287 : : #define NRF52_ERRATA_131_PRESENT 1 6288 : : #else 6289 : : #define NRF52_ERRATA_131_PRESENT 0 6290 : : #endif 6291 : : 6292 : : #ifndef NRF52_ERRATA_131_ENABLE_WORKAROUND 6293 : : #define NRF52_ERRATA_131_ENABLE_WORKAROUND NRF52_ERRATA_131_PRESENT 6294 : : #endif 6295 : : 6296 : 0 : static bool nrf52_errata_131(void) 6297 : : { 6298 : : #ifndef NRF52_SERIES 6299 : 0 : return false; 6300 : : #else 6301 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6302 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 6303 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 6304 : : #endif 6305 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6306 : : if (var1 == 0x08) 6307 : : { 6308 : : switch(var2) 6309 : : { 6310 : : case 0x00ul: 6311 : : return true; 6312 : : case 0x01ul: 6313 : : return false; 6314 : : case 0x02ul: 6315 : : return false; 6316 : : case 0x03ul: 6317 : : return false; 6318 : : case 0x04ul: 6319 : : return false; 6320 : : case 0x05ul: 6321 : : return false; 6322 : : default: 6323 : : return false; 6324 : : } 6325 : : } 6326 : : #endif 6327 : : return false; 6328 : : #endif 6329 : : } 6330 : : 6331 : : /* ========= Errata 132 ========= */ 6332 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 6333 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 6334 : : #define NRF52_ERRATA_132_PRESENT 1 6335 : : #else 6336 : : #define NRF52_ERRATA_132_PRESENT 0 6337 : : #endif 6338 : : 6339 : : #ifndef NRF52_ERRATA_132_ENABLE_WORKAROUND 6340 : : #define NRF52_ERRATA_132_ENABLE_WORKAROUND NRF52_ERRATA_132_PRESENT 6341 : : #endif 6342 : : 6343 : 0 : static bool nrf52_errata_132(void) 6344 : : { 6345 : : #ifndef NRF52_SERIES 6346 : 0 : return false; 6347 : : #else 6348 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 6349 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 6350 : : uint32_t var1; 6351 : : uint32_t var2; 6352 : : 6353 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 6354 : : { 6355 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 6356 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 6357 : : } 6358 : : else 6359 : : { 6360 : : var1 = *(uint32_t *)0x10000130ul; 6361 : : var2 = *(uint32_t *)0x10000134ul; 6362 : : } 6363 : : #endif 6364 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 6365 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 6366 : : if (var1 == 0x06) 6367 : : { 6368 : : switch(var2) 6369 : : { 6370 : : case 0x03ul: 6371 : : return false; 6372 : : case 0x04ul: 6373 : : return false; 6374 : : case 0x05ul: 6375 : : return true; 6376 : : case 0x06ul: 6377 : : return true; 6378 : : case 0x07ul: 6379 : : return true; 6380 : : default: 6381 : : return true; 6382 : : } 6383 : : } 6384 : : #endif 6385 : : return false; 6386 : : #endif 6387 : : } 6388 : : 6389 : : /* ========= Errata 133 ========= */ 6390 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6391 : : #define NRF52_ERRATA_133_PRESENT 1 6392 : : #else 6393 : : #define NRF52_ERRATA_133_PRESENT 0 6394 : : #endif 6395 : : 6396 : : #ifndef NRF52_ERRATA_133_ENABLE_WORKAROUND 6397 : : #define NRF52_ERRATA_133_ENABLE_WORKAROUND NRF52_ERRATA_133_PRESENT 6398 : : #endif 6399 : : 6400 : 0 : static bool nrf52_errata_133(void) 6401 : : { 6402 : : #ifndef NRF52_SERIES 6403 : 0 : return false; 6404 : : #else 6405 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6406 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 6407 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 6408 : : #endif 6409 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6410 : : if (var1 == 0x08) 6411 : : { 6412 : : switch(var2) 6413 : : { 6414 : : case 0x00ul: 6415 : : return true; 6416 : : case 0x01ul: 6417 : : return false; 6418 : : case 0x02ul: 6419 : : return false; 6420 : : case 0x03ul: 6421 : : return false; 6422 : : case 0x04ul: 6423 : : return false; 6424 : : case 0x05ul: 6425 : : return false; 6426 : : default: 6427 : : return false; 6428 : : } 6429 : : } 6430 : : #endif 6431 : : return false; 6432 : : #endif 6433 : : } 6434 : : 6435 : : /* ========= Errata 134 ========= */ 6436 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6437 : : #define NRF52_ERRATA_134_PRESENT 1 6438 : : #else 6439 : : #define NRF52_ERRATA_134_PRESENT 0 6440 : : #endif 6441 : : 6442 : : #ifndef NRF52_ERRATA_134_ENABLE_WORKAROUND 6443 : : #define NRF52_ERRATA_134_ENABLE_WORKAROUND NRF52_ERRATA_134_PRESENT 6444 : : #endif 6445 : : 6446 : 0 : static bool nrf52_errata_134(void) 6447 : : { 6448 : : #ifndef NRF52_SERIES 6449 : 0 : return false; 6450 : : #else 6451 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6452 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 6453 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 6454 : : #endif 6455 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6456 : : if (var1 == 0x08) 6457 : : { 6458 : : switch(var2) 6459 : : { 6460 : : case 0x00ul: 6461 : : return true; 6462 : : case 0x01ul: 6463 : : return false; 6464 : : case 0x02ul: 6465 : : return false; 6466 : : case 0x03ul: 6467 : : return false; 6468 : : case 0x04ul: 6469 : : return false; 6470 : : case 0x05ul: 6471 : : return false; 6472 : : default: 6473 : : return false; 6474 : : } 6475 : : } 6476 : : #endif 6477 : : return false; 6478 : : #endif 6479 : : } 6480 : : 6481 : : /* ========= Errata 135 ========= */ 6482 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6483 : : #define NRF52_ERRATA_135_PRESENT 1 6484 : : #else 6485 : : #define NRF52_ERRATA_135_PRESENT 0 6486 : : #endif 6487 : : 6488 : : #ifndef NRF52_ERRATA_135_ENABLE_WORKAROUND 6489 : : #define NRF52_ERRATA_135_ENABLE_WORKAROUND NRF52_ERRATA_135_PRESENT 6490 : : #endif 6491 : : 6492 : 0 : static bool nrf52_errata_135(void) 6493 : : { 6494 : : #ifndef NRF52_SERIES 6495 : 0 : return false; 6496 : : #else 6497 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6498 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 6499 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 6500 : : #endif 6501 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6502 : : if (var1 == 0x08) 6503 : : { 6504 : : switch(var2) 6505 : : { 6506 : : case 0x00ul: 6507 : : return true; 6508 : : case 0x01ul: 6509 : : return false; 6510 : : case 0x02ul: 6511 : : return false; 6512 : : case 0x03ul: 6513 : : return false; 6514 : : case 0x04ul: 6515 : : return false; 6516 : : case 0x05ul: 6517 : : return false; 6518 : : default: 6519 : : return false; 6520 : : } 6521 : : } 6522 : : #endif 6523 : : return false; 6524 : : #endif 6525 : : } 6526 : : 6527 : : /* ========= Errata 136 ========= */ 6528 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 6529 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 6530 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 6531 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 6532 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 6533 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 6534 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 6535 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6536 : : #define NRF52_ERRATA_136_PRESENT 1 6537 : : #else 6538 : : #define NRF52_ERRATA_136_PRESENT 0 6539 : : #endif 6540 : : 6541 : : #ifndef NRF52_ERRATA_136_ENABLE_WORKAROUND 6542 : : #define NRF52_ERRATA_136_ENABLE_WORKAROUND NRF52_ERRATA_136_PRESENT 6543 : : #endif 6544 : : 6545 : 0 : static bool nrf52_errata_136(void) 6546 : : { 6547 : : #ifndef NRF52_SERIES 6548 : 0 : return false; 6549 : : #else 6550 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 6551 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 6552 : : uint32_t var1; 6553 : : uint32_t var2; 6554 : : 6555 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 6556 : : { 6557 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 6558 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 6559 : : } 6560 : : else 6561 : : { 6562 : : var1 = *(uint32_t *)0x10000130ul; 6563 : : var2 = *(uint32_t *)0x10000134ul; 6564 : : } 6565 : : #elif defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 6566 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 6567 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 6568 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 6569 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 6570 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6571 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 6572 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 6573 : : #endif 6574 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 6575 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 6576 : : if (var1 == 0x06) 6577 : : { 6578 : : switch(var2) 6579 : : { 6580 : : case 0x03ul: 6581 : : return true; 6582 : : case 0x04ul: 6583 : : return true; 6584 : : case 0x05ul: 6585 : : return true; 6586 : : case 0x06ul: 6587 : : return true; 6588 : : case 0x07ul: 6589 : : return true; 6590 : : default: 6591 : : return true; 6592 : : } 6593 : : } 6594 : : #endif 6595 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6596 : : if (var1 == 0x08) 6597 : : { 6598 : : switch(var2) 6599 : : { 6600 : : case 0x00ul: 6601 : : return true; 6602 : : case 0x01ul: 6603 : : return true; 6604 : : case 0x02ul: 6605 : : return true; 6606 : : case 0x03ul: 6607 : : return true; 6608 : : case 0x04ul: 6609 : : return true; 6610 : : case 0x05ul: 6611 : : return true; 6612 : : default: 6613 : : return true; 6614 : : } 6615 : : } 6616 : : #endif 6617 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 6618 : : if (var1 == 0x0A) 6619 : : { 6620 : : switch(var2) 6621 : : { 6622 : : case 0x00ul: 6623 : : return true; 6624 : : case 0x01ul: 6625 : : return true; 6626 : : case 0x02ul: 6627 : : return true; 6628 : : default: 6629 : : return true; 6630 : : } 6631 : : } 6632 : : #endif 6633 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 6634 : : if (var1 == 0x0D) 6635 : : { 6636 : : switch(var2) 6637 : : { 6638 : : case 0x00ul: 6639 : : return true; 6640 : : case 0x01ul: 6641 : : return true; 6642 : : default: 6643 : : return true; 6644 : : } 6645 : : } 6646 : : #endif 6647 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 6648 : : if (var1 == 0x0E) 6649 : : { 6650 : : switch(var2) 6651 : : { 6652 : : case 0x00ul: 6653 : : return true; 6654 : : case 0x01ul: 6655 : : return true; 6656 : : default: 6657 : : return true; 6658 : : } 6659 : : } 6660 : : #endif 6661 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 6662 : : if (var1 == 0x0F) 6663 : : { 6664 : : switch(var2) 6665 : : { 6666 : : case 0x00ul: 6667 : : return true; 6668 : : case 0x01ul: 6669 : : return true; 6670 : : default: 6671 : : return true; 6672 : : } 6673 : : } 6674 : : #endif 6675 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 6676 : : if (var1 == 0x10) 6677 : : { 6678 : : switch(var2) 6679 : : { 6680 : : case 0x00ul: 6681 : : return true; 6682 : : case 0x01ul: 6683 : : return true; 6684 : : case 0x02ul: 6685 : : return true; 6686 : : case 0x03ul: 6687 : : return true; 6688 : : default: 6689 : : return true; 6690 : : } 6691 : : } 6692 : : #endif 6693 : : return false; 6694 : : #endif 6695 : : } 6696 : : 6697 : : /* ========= Errata 138 ========= */ 6698 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 6699 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 6700 : : #define NRF52_ERRATA_138_PRESENT 1 6701 : : #else 6702 : : #define NRF52_ERRATA_138_PRESENT 0 6703 : : #endif 6704 : : 6705 : : #ifndef NRF52_ERRATA_138_ENABLE_WORKAROUND 6706 : : #define NRF52_ERRATA_138_ENABLE_WORKAROUND NRF52_ERRATA_138_PRESENT 6707 : : #endif 6708 : : 6709 : 0 : static bool nrf52_errata_138(void) 6710 : : { 6711 : : #ifndef NRF52_SERIES 6712 : 0 : return false; 6713 : : #else 6714 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 6715 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 6716 : : uint32_t var1; 6717 : : uint32_t var2; 6718 : : 6719 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 6720 : : { 6721 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 6722 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 6723 : : } 6724 : : else 6725 : : { 6726 : : var1 = *(uint32_t *)0x10000130ul; 6727 : : var2 = *(uint32_t *)0x10000134ul; 6728 : : } 6729 : : #endif 6730 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 6731 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 6732 : : if (var1 == 0x06) 6733 : : { 6734 : : switch(var2) 6735 : : { 6736 : : case 0x03ul: 6737 : : return false; 6738 : : case 0x04ul: 6739 : : return false; 6740 : : case 0x05ul: 6741 : : return true; 6742 : : case 0x06ul: 6743 : : return true; 6744 : : case 0x07ul: 6745 : : return true; 6746 : : default: 6747 : : return true; 6748 : : } 6749 : : } 6750 : : #endif 6751 : : return false; 6752 : : #endif 6753 : : } 6754 : : 6755 : : /* ========= Errata 140 ========= */ 6756 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6757 : : #define NRF52_ERRATA_140_PRESENT 1 6758 : : #else 6759 : : #define NRF52_ERRATA_140_PRESENT 0 6760 : : #endif 6761 : : 6762 : : #ifndef NRF52_ERRATA_140_ENABLE_WORKAROUND 6763 : : #define NRF52_ERRATA_140_ENABLE_WORKAROUND NRF52_ERRATA_140_PRESENT 6764 : : #endif 6765 : : 6766 : 0 : static bool nrf52_errata_140(void) 6767 : : { 6768 : : #ifndef NRF52_SERIES 6769 : 0 : return false; 6770 : : #else 6771 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6772 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 6773 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 6774 : : #endif 6775 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6776 : : if (var1 == 0x08) 6777 : : { 6778 : : switch(var2) 6779 : : { 6780 : : case 0x00ul: 6781 : : return true; 6782 : : case 0x01ul: 6783 : : return false; 6784 : : case 0x02ul: 6785 : : return false; 6786 : : case 0x03ul: 6787 : : return false; 6788 : : case 0x04ul: 6789 : : return false; 6790 : : case 0x05ul: 6791 : : return false; 6792 : : default: 6793 : : return false; 6794 : : } 6795 : : } 6796 : : #endif 6797 : : return false; 6798 : : #endif 6799 : : } 6800 : : 6801 : : /* ========= Errata 141 ========= */ 6802 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 6803 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 6804 : : #define NRF52_ERRATA_141_PRESENT 1 6805 : : #else 6806 : : #define NRF52_ERRATA_141_PRESENT 0 6807 : : #endif 6808 : : 6809 : : #ifndef NRF52_ERRATA_141_ENABLE_WORKAROUND 6810 : : #define NRF52_ERRATA_141_ENABLE_WORKAROUND NRF52_ERRATA_141_PRESENT 6811 : : #endif 6812 : : 6813 : 0 : static bool nrf52_errata_141(void) 6814 : : { 6815 : : #ifndef NRF52_SERIES 6816 : 0 : return false; 6817 : : #else 6818 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 6819 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 6820 : : uint32_t var1; 6821 : : uint32_t var2; 6822 : : 6823 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 6824 : : { 6825 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 6826 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 6827 : : } 6828 : : else 6829 : : { 6830 : : var1 = *(uint32_t *)0x10000130ul; 6831 : : var2 = *(uint32_t *)0x10000134ul; 6832 : : } 6833 : : #endif 6834 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 6835 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 6836 : : if (var1 == 0x06) 6837 : : { 6838 : : switch(var2) 6839 : : { 6840 : : case 0x03ul: 6841 : : return false; 6842 : : case 0x04ul: 6843 : : return false; 6844 : : case 0x05ul: 6845 : : return true; 6846 : : case 0x06ul: 6847 : : return true; 6848 : : case 0x07ul: 6849 : : return true; 6850 : : default: 6851 : : return true; 6852 : : } 6853 : : } 6854 : : #endif 6855 : : return false; 6856 : : #endif 6857 : : } 6858 : : 6859 : : /* ========= Errata 142 ========= */ 6860 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6861 : : #define NRF52_ERRATA_142_PRESENT 1 6862 : : #else 6863 : : #define NRF52_ERRATA_142_PRESENT 0 6864 : : #endif 6865 : : 6866 : : #ifndef NRF52_ERRATA_142_ENABLE_WORKAROUND 6867 : : #define NRF52_ERRATA_142_ENABLE_WORKAROUND NRF52_ERRATA_142_PRESENT 6868 : : #endif 6869 : : 6870 : 0 : static bool nrf52_errata_142(void) 6871 : : { 6872 : : #ifndef NRF52_SERIES 6873 : 0 : return false; 6874 : : #else 6875 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6876 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 6877 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 6878 : : #endif 6879 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6880 : : if (var1 == 0x08) 6881 : : { 6882 : : switch(var2) 6883 : : { 6884 : : case 0x00ul: 6885 : : return true; 6886 : : case 0x01ul: 6887 : : return false; 6888 : : case 0x02ul: 6889 : : return false; 6890 : : case 0x03ul: 6891 : : return false; 6892 : : case 0x04ul: 6893 : : return false; 6894 : : case 0x05ul: 6895 : : return false; 6896 : : default: 6897 : : return false; 6898 : : } 6899 : : } 6900 : : #endif 6901 : : return false; 6902 : : #endif 6903 : : } 6904 : : 6905 : : /* ========= Errata 143 ========= */ 6906 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 6907 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 6908 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6909 : : #define NRF52_ERRATA_143_PRESENT 1 6910 : : #else 6911 : : #define NRF52_ERRATA_143_PRESENT 0 6912 : : #endif 6913 : : 6914 : : #ifndef NRF52_ERRATA_143_ENABLE_WORKAROUND 6915 : : #define NRF52_ERRATA_143_ENABLE_WORKAROUND NRF52_ERRATA_143_PRESENT 6916 : : #endif 6917 : : 6918 : 0 : static bool nrf52_errata_143(void) 6919 : : { 6920 : : #ifndef NRF52_SERIES 6921 : 0 : return false; 6922 : : #else 6923 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 6924 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 6925 : : uint32_t var1; 6926 : : uint32_t var2; 6927 : : 6928 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 6929 : : { 6930 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 6931 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 6932 : : } 6933 : : else 6934 : : { 6935 : : var1 = *(uint32_t *)0x10000130ul; 6936 : : var2 = *(uint32_t *)0x10000134ul; 6937 : : } 6938 : : #elif defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6939 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 6940 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 6941 : : #endif 6942 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 6943 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 6944 : : if (var1 == 0x06) 6945 : : { 6946 : : switch(var2) 6947 : : { 6948 : : case 0x03ul: 6949 : : return false; 6950 : : case 0x04ul: 6951 : : return false; 6952 : : case 0x05ul: 6953 : : return true; 6954 : : case 0x06ul: 6955 : : return true; 6956 : : case 0x07ul: 6957 : : return true; 6958 : : default: 6959 : : return true; 6960 : : } 6961 : : } 6962 : : #endif 6963 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6964 : : if (var1 == 0x08) 6965 : : { 6966 : : switch(var2) 6967 : : { 6968 : : case 0x00ul: 6969 : : return true; 6970 : : case 0x01ul: 6971 : : return false; 6972 : : case 0x02ul: 6973 : : return false; 6974 : : case 0x03ul: 6975 : : return false; 6976 : : case 0x04ul: 6977 : : return false; 6978 : : case 0x05ul: 6979 : : return false; 6980 : : default: 6981 : : return false; 6982 : : } 6983 : : } 6984 : : #endif 6985 : : return false; 6986 : : #endif 6987 : : } 6988 : : 6989 : : /* ========= Errata 144 ========= */ 6990 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 6991 : : #define NRF52_ERRATA_144_PRESENT 1 6992 : : #else 6993 : : #define NRF52_ERRATA_144_PRESENT 0 6994 : : #endif 6995 : : 6996 : : #ifndef NRF52_ERRATA_144_ENABLE_WORKAROUND 6997 : : #define NRF52_ERRATA_144_ENABLE_WORKAROUND NRF52_ERRATA_144_PRESENT 6998 : : #endif 6999 : : 7000 : 0 : static bool nrf52_errata_144(void) 7001 : : { 7002 : : #ifndef NRF52_SERIES 7003 : 0 : return false; 7004 : : #else 7005 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7006 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 7007 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 7008 : : #endif 7009 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7010 : : if (var1 == 0x08) 7011 : : { 7012 : : switch(var2) 7013 : : { 7014 : : case 0x00ul: 7015 : : return true; 7016 : : case 0x01ul: 7017 : : return false; 7018 : : case 0x02ul: 7019 : : return false; 7020 : : case 0x03ul: 7021 : : return false; 7022 : : case 0x04ul: 7023 : : return false; 7024 : : case 0x05ul: 7025 : : return false; 7026 : : default: 7027 : : return false; 7028 : : } 7029 : : } 7030 : : #endif 7031 : : return false; 7032 : : #endif 7033 : : } 7034 : : 7035 : : /* ========= Errata 145 ========= */ 7036 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7037 : : #define NRF52_ERRATA_145_PRESENT 1 7038 : : #else 7039 : : #define NRF52_ERRATA_145_PRESENT 0 7040 : : #endif 7041 : : 7042 : : #ifndef NRF52_ERRATA_145_ENABLE_WORKAROUND 7043 : : #define NRF52_ERRATA_145_ENABLE_WORKAROUND NRF52_ERRATA_145_PRESENT 7044 : : #endif 7045 : : 7046 : 0 : static bool nrf52_errata_145(void) 7047 : : { 7048 : : #ifndef NRF52_SERIES 7049 : 0 : return false; 7050 : : #else 7051 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7052 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 7053 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 7054 : : #endif 7055 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7056 : : if (var1 == 0x08) 7057 : : { 7058 : : switch(var2) 7059 : : { 7060 : : case 0x00ul: 7061 : : return true; 7062 : : case 0x01ul: 7063 : : return false; 7064 : : case 0x02ul: 7065 : : return false; 7066 : : case 0x03ul: 7067 : : return false; 7068 : : case 0x04ul: 7069 : : return false; 7070 : : case 0x05ul: 7071 : : return false; 7072 : : default: 7073 : : return false; 7074 : : } 7075 : : } 7076 : : #endif 7077 : : return false; 7078 : : #endif 7079 : : } 7080 : : 7081 : : /* ========= Errata 146 ========= */ 7082 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 7083 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 7084 : : #define NRF52_ERRATA_146_PRESENT 1 7085 : : #else 7086 : : #define NRF52_ERRATA_146_PRESENT 0 7087 : : #endif 7088 : : 7089 : : #ifndef NRF52_ERRATA_146_ENABLE_WORKAROUND 7090 : : #define NRF52_ERRATA_146_ENABLE_WORKAROUND NRF52_ERRATA_146_PRESENT 7091 : : #endif 7092 : : 7093 : 0 : static bool nrf52_errata_146(void) 7094 : : { 7095 : : #ifndef NRF52_SERIES 7096 : 0 : return false; 7097 : : #else 7098 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 7099 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 7100 : : uint32_t var1; 7101 : : uint32_t var2; 7102 : : 7103 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 7104 : : { 7105 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 7106 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 7107 : : } 7108 : : else 7109 : : { 7110 : : var1 = *(uint32_t *)0x10000130ul; 7111 : : var2 = *(uint32_t *)0x10000134ul; 7112 : : } 7113 : : #endif 7114 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 7115 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 7116 : : if (var1 == 0x06) 7117 : : { 7118 : : switch(var2) 7119 : : { 7120 : : case 0x03ul: 7121 : : return false; 7122 : : case 0x04ul: 7123 : : return true; 7124 : : case 0x05ul: 7125 : : return true; 7126 : : case 0x06ul: 7127 : : return true; 7128 : : case 0x07ul: 7129 : : return true; 7130 : : default: 7131 : : return true; 7132 : : } 7133 : : } 7134 : : #endif 7135 : : return false; 7136 : : #endif 7137 : : } 7138 : : 7139 : : /* ========= Errata 147 ========= */ 7140 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7141 : : #define NRF52_ERRATA_147_PRESENT 1 7142 : : #else 7143 : : #define NRF52_ERRATA_147_PRESENT 0 7144 : : #endif 7145 : : 7146 : : #ifndef NRF52_ERRATA_147_ENABLE_WORKAROUND 7147 : : #define NRF52_ERRATA_147_ENABLE_WORKAROUND NRF52_ERRATA_147_PRESENT 7148 : : #endif 7149 : : 7150 : 0 : static bool nrf52_errata_147(void) 7151 : : { 7152 : : #ifndef NRF52_SERIES 7153 : 0 : return false; 7154 : : #else 7155 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7156 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 7157 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 7158 : : #endif 7159 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7160 : : if (var1 == 0x08) 7161 : : { 7162 : : switch(var2) 7163 : : { 7164 : : case 0x00ul: 7165 : : return true; 7166 : : case 0x01ul: 7167 : : return false; 7168 : : case 0x02ul: 7169 : : return false; 7170 : : case 0x03ul: 7171 : : return false; 7172 : : case 0x04ul: 7173 : : return false; 7174 : : case 0x05ul: 7175 : : return false; 7176 : : default: 7177 : : return false; 7178 : : } 7179 : : } 7180 : : #endif 7181 : : return false; 7182 : : #endif 7183 : : } 7184 : : 7185 : : /* ========= Errata 149 ========= */ 7186 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 7187 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 7188 : : #define NRF52_ERRATA_149_PRESENT 1 7189 : : #else 7190 : : #define NRF52_ERRATA_149_PRESENT 0 7191 : : #endif 7192 : : 7193 : : #ifndef NRF52_ERRATA_149_ENABLE_WORKAROUND 7194 : : #define NRF52_ERRATA_149_ENABLE_WORKAROUND NRF52_ERRATA_149_PRESENT 7195 : : #endif 7196 : : 7197 : 0 : static bool nrf52_errata_149(void) 7198 : : { 7199 : : #ifndef NRF52_SERIES 7200 : 0 : return false; 7201 : : #else 7202 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 7203 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 7204 : : uint32_t var1; 7205 : : uint32_t var2; 7206 : : 7207 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 7208 : : { 7209 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 7210 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 7211 : : } 7212 : : else 7213 : : { 7214 : : var1 = *(uint32_t *)0x10000130ul; 7215 : : var2 = *(uint32_t *)0x10000134ul; 7216 : : } 7217 : : #endif 7218 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 7219 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 7220 : : if (var1 == 0x06) 7221 : : { 7222 : : switch(var2) 7223 : : { 7224 : : case 0x03ul: 7225 : : return false; 7226 : : case 0x04ul: 7227 : : return false; 7228 : : case 0x05ul: 7229 : : return true; 7230 : : case 0x06ul: 7231 : : return true; 7232 : : case 0x07ul: 7233 : : return true; 7234 : : default: 7235 : : return true; 7236 : : } 7237 : : } 7238 : : #endif 7239 : : return false; 7240 : : #endif 7241 : : } 7242 : : 7243 : : /* ========= Errata 150 ========= */ 7244 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 7245 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 7246 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 7247 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7248 : : #define NRF52_ERRATA_150_PRESENT 1 7249 : : #else 7250 : : #define NRF52_ERRATA_150_PRESENT 0 7251 : : #endif 7252 : : 7253 : : #ifndef NRF52_ERRATA_150_ENABLE_WORKAROUND 7254 : : #define NRF52_ERRATA_150_ENABLE_WORKAROUND NRF52_ERRATA_150_PRESENT 7255 : : #endif 7256 : : 7257 : 0 : static bool nrf52_errata_150(void) 7258 : : { 7259 : : #ifndef NRF52_SERIES 7260 : 0 : return false; 7261 : : #else 7262 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 7263 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 7264 : : uint32_t var1; 7265 : : uint32_t var2; 7266 : : 7267 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 7268 : : { 7269 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 7270 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 7271 : : } 7272 : : else 7273 : : { 7274 : : var1 = *(uint32_t *)0x10000130ul; 7275 : : var2 = *(uint32_t *)0x10000134ul; 7276 : : } 7277 : : #elif defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 7278 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7279 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 7280 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 7281 : : #endif 7282 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 7283 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 7284 : : if (var1 == 0x06) 7285 : : { 7286 : : switch(var2) 7287 : : { 7288 : : case 0x03ul: 7289 : : return false; 7290 : : case 0x04ul: 7291 : : return false; 7292 : : case 0x05ul: 7293 : : return true; 7294 : : case 0x06ul: 7295 : : return true; 7296 : : case 0x07ul: 7297 : : return true; 7298 : : default: 7299 : : return true; 7300 : : } 7301 : : } 7302 : : #endif 7303 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7304 : : if (var1 == 0x08) 7305 : : { 7306 : : switch(var2) 7307 : : { 7308 : : case 0x00ul: 7309 : : return true; 7310 : : case 0x01ul: 7311 : : return false; 7312 : : case 0x02ul: 7313 : : return false; 7314 : : case 0x03ul: 7315 : : return false; 7316 : : case 0x04ul: 7317 : : return false; 7318 : : case 0x05ul: 7319 : : return false; 7320 : : default: 7321 : : return false; 7322 : : } 7323 : : } 7324 : : #endif 7325 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 7326 : : if (var1 == 0x0A) 7327 : : { 7328 : : switch(var2) 7329 : : { 7330 : : case 0x00ul: 7331 : : return true; 7332 : : case 0x01ul: 7333 : : return false; 7334 : : case 0x02ul: 7335 : : return false; 7336 : : default: 7337 : : return false; 7338 : : } 7339 : : } 7340 : : #endif 7341 : : return false; 7342 : : #endif 7343 : : } 7344 : : 7345 : : /* ========= Errata 151 ========= */ 7346 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7347 : : #define NRF52_ERRATA_151_PRESENT 1 7348 : : #else 7349 : : #define NRF52_ERRATA_151_PRESENT 0 7350 : : #endif 7351 : : 7352 : : #ifndef NRF52_ERRATA_151_ENABLE_WORKAROUND 7353 : : #define NRF52_ERRATA_151_ENABLE_WORKAROUND NRF52_ERRATA_151_PRESENT 7354 : : #endif 7355 : : 7356 : 0 : static bool nrf52_errata_151(void) 7357 : : { 7358 : : #ifndef NRF52_SERIES 7359 : 0 : return false; 7360 : : #else 7361 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7362 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 7363 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 7364 : : #endif 7365 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7366 : : if (var1 == 0x08) 7367 : : { 7368 : : switch(var2) 7369 : : { 7370 : : case 0x00ul: 7371 : : return true; 7372 : : case 0x01ul: 7373 : : return false; 7374 : : case 0x02ul: 7375 : : return false; 7376 : : case 0x03ul: 7377 : : return false; 7378 : : case 0x04ul: 7379 : : return false; 7380 : : case 0x05ul: 7381 : : return false; 7382 : : default: 7383 : : return false; 7384 : : } 7385 : : } 7386 : : #endif 7387 : : return false; 7388 : : #endif 7389 : : } 7390 : : 7391 : : /* ========= Errata 153 ========= */ 7392 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 7393 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 7394 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7395 : : #define NRF52_ERRATA_153_PRESENT 1 7396 : : #else 7397 : : #define NRF52_ERRATA_153_PRESENT 0 7398 : : #endif 7399 : : 7400 : : #ifndef NRF52_ERRATA_153_ENABLE_WORKAROUND 7401 : : #define NRF52_ERRATA_153_ENABLE_WORKAROUND NRF52_ERRATA_153_PRESENT 7402 : : #endif 7403 : : 7404 : 0 : static bool nrf52_errata_153(void) 7405 : : { 7406 : : #ifndef NRF52_SERIES 7407 : 0 : return false; 7408 : : #else 7409 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 7410 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 7411 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7412 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 7413 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 7414 : : #endif 7415 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7416 : : if (var1 == 0x08) 7417 : : { 7418 : : switch(var2) 7419 : : { 7420 : : case 0x00ul: 7421 : : return true; 7422 : : case 0x01ul: 7423 : : return true; 7424 : : case 0x02ul: 7425 : : return true; 7426 : : case 0x03ul: 7427 : : return true; 7428 : : case 0x04ul: 7429 : : return true; 7430 : : case 0x05ul: 7431 : : return true; 7432 : : default: 7433 : : return true; 7434 : : } 7435 : : } 7436 : : #endif 7437 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 7438 : : if (var1 == 0x0A) 7439 : : { 7440 : : switch(var2) 7441 : : { 7442 : : case 0x00ul: 7443 : : return false; 7444 : : case 0x01ul: 7445 : : return true; 7446 : : case 0x02ul: 7447 : : return false; 7448 : : default: 7449 : : return false; 7450 : : } 7451 : : } 7452 : : #endif 7453 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 7454 : : if (var1 == 0x0E) 7455 : : { 7456 : : switch(var2) 7457 : : { 7458 : : case 0x00ul: 7459 : : return true; 7460 : : case 0x01ul: 7461 : : return true; 7462 : : default: 7463 : : return true; 7464 : : } 7465 : : } 7466 : : #endif 7467 : : return false; 7468 : : #endif 7469 : : } 7470 : : 7471 : : /* ========= Errata 154 ========= */ 7472 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7473 : : #define NRF52_ERRATA_154_PRESENT 1 7474 : : #else 7475 : : #define NRF52_ERRATA_154_PRESENT 0 7476 : : #endif 7477 : : 7478 : : #ifndef NRF52_ERRATA_154_ENABLE_WORKAROUND 7479 : : #define NRF52_ERRATA_154_ENABLE_WORKAROUND NRF52_ERRATA_154_PRESENT 7480 : : #endif 7481 : : 7482 : 0 : static bool nrf52_errata_154(void) 7483 : : { 7484 : : #ifndef NRF52_SERIES 7485 : 0 : return false; 7486 : : #else 7487 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7488 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 7489 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 7490 : : #endif 7491 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7492 : : if (var1 == 0x08) 7493 : : { 7494 : : switch(var2) 7495 : : { 7496 : : case 0x00ul: 7497 : : return true; 7498 : : case 0x01ul: 7499 : : return false; 7500 : : case 0x02ul: 7501 : : return false; 7502 : : case 0x03ul: 7503 : : return false; 7504 : : case 0x04ul: 7505 : : return false; 7506 : : case 0x05ul: 7507 : : return false; 7508 : : default: 7509 : : return false; 7510 : : } 7511 : : } 7512 : : #endif 7513 : : return false; 7514 : : #endif 7515 : : } 7516 : : 7517 : : /* ========= Errata 155 ========= */ 7518 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 7519 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 7520 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 7521 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 7522 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 7523 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7524 : : #define NRF52_ERRATA_155_PRESENT 1 7525 : : #else 7526 : : #define NRF52_ERRATA_155_PRESENT 0 7527 : : #endif 7528 : : 7529 : : #ifndef NRF52_ERRATA_155_ENABLE_WORKAROUND 7530 : : #define NRF52_ERRATA_155_ENABLE_WORKAROUND NRF52_ERRATA_155_PRESENT 7531 : : #endif 7532 : : 7533 : 0 : static bool nrf52_errata_155(void) 7534 : : { 7535 : : #ifndef NRF52_SERIES 7536 : 0 : return false; 7537 : : #else 7538 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 7539 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 7540 : : uint32_t var1; 7541 : : uint32_t var2; 7542 : : 7543 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 7544 : : { 7545 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 7546 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 7547 : : } 7548 : : else 7549 : : { 7550 : : var1 = *(uint32_t *)0x10000130ul; 7551 : : var2 = *(uint32_t *)0x10000134ul; 7552 : : } 7553 : : #elif defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 7554 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 7555 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 7556 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7557 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 7558 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 7559 : : #endif 7560 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 7561 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 7562 : : if (var1 == 0x06) 7563 : : { 7564 : : switch(var2) 7565 : : { 7566 : : case 0x03ul: 7567 : : return false; 7568 : : case 0x04ul: 7569 : : return false; 7570 : : case 0x05ul: 7571 : : return true; 7572 : : case 0x06ul: 7573 : : return true; 7574 : : case 0x07ul: 7575 : : return true; 7576 : : default: 7577 : : return true; 7578 : : } 7579 : : } 7580 : : #endif 7581 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7582 : : if (var1 == 0x08) 7583 : : { 7584 : : switch(var2) 7585 : : { 7586 : : case 0x00ul: 7587 : : return true; 7588 : : case 0x01ul: 7589 : : return true; 7590 : : case 0x02ul: 7591 : : return true; 7592 : : case 0x03ul: 7593 : : return true; 7594 : : case 0x04ul: 7595 : : return true; 7596 : : case 0x05ul: 7597 : : return true; 7598 : : default: 7599 : : return true; 7600 : : } 7601 : : } 7602 : : #endif 7603 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 7604 : : if (var1 == 0x0A) 7605 : : { 7606 : : switch(var2) 7607 : : { 7608 : : case 0x00ul: 7609 : : return true; 7610 : : case 0x01ul: 7611 : : return true; 7612 : : case 0x02ul: 7613 : : return true; 7614 : : default: 7615 : : return true; 7616 : : } 7617 : : } 7618 : : #endif 7619 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 7620 : : if (var1 == 0x0E) 7621 : : { 7622 : : switch(var2) 7623 : : { 7624 : : case 0x00ul: 7625 : : return true; 7626 : : case 0x01ul: 7627 : : return true; 7628 : : default: 7629 : : return true; 7630 : : } 7631 : : } 7632 : : #endif 7633 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 7634 : : if (var1 == 0x0F) 7635 : : { 7636 : : switch(var2) 7637 : : { 7638 : : case 0x00ul: 7639 : : return true; 7640 : : case 0x01ul: 7641 : : return true; 7642 : : default: 7643 : : return true; 7644 : : } 7645 : : } 7646 : : #endif 7647 : : return false; 7648 : : #endif 7649 : : } 7650 : : 7651 : : /* ========= Errata 156 ========= */ 7652 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 7653 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 7654 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 7655 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 7656 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 7657 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7658 : : #define NRF52_ERRATA_156_PRESENT 1 7659 : : #else 7660 : : #define NRF52_ERRATA_156_PRESENT 0 7661 : : #endif 7662 : : 7663 : : #ifndef NRF52_ERRATA_156_ENABLE_WORKAROUND 7664 : : #define NRF52_ERRATA_156_ENABLE_WORKAROUND NRF52_ERRATA_156_PRESENT 7665 : : #endif 7666 : : 7667 : 0 : static bool nrf52_errata_156(void) 7668 : : { 7669 : : #ifndef NRF52_SERIES 7670 : 0 : return false; 7671 : : #else 7672 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 7673 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 7674 : : uint32_t var1; 7675 : : uint32_t var2; 7676 : : 7677 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 7678 : : { 7679 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 7680 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 7681 : : } 7682 : : else 7683 : : { 7684 : : var1 = *(uint32_t *)0x10000130ul; 7685 : : var2 = *(uint32_t *)0x10000134ul; 7686 : : } 7687 : : #elif defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 7688 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 7689 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 7690 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7691 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 7692 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 7693 : : #endif 7694 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 7695 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 7696 : : if (var1 == 0x06) 7697 : : { 7698 : : switch(var2) 7699 : : { 7700 : : case 0x03ul: 7701 : : return false; 7702 : : case 0x04ul: 7703 : : return false; 7704 : : case 0x05ul: 7705 : : return true; 7706 : : case 0x06ul: 7707 : : return true; 7708 : : case 0x07ul: 7709 : : return true; 7710 : : default: 7711 : : return true; 7712 : : } 7713 : : } 7714 : : #endif 7715 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7716 : : if (var1 == 0x08) 7717 : : { 7718 : : switch(var2) 7719 : : { 7720 : : case 0x00ul: 7721 : : return true; 7722 : : case 0x01ul: 7723 : : return false; 7724 : : case 0x02ul: 7725 : : return false; 7726 : : case 0x03ul: 7727 : : return false; 7728 : : case 0x04ul: 7729 : : return false; 7730 : : case 0x05ul: 7731 : : return false; 7732 : : default: 7733 : : return false; 7734 : : } 7735 : : } 7736 : : #endif 7737 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 7738 : : if (var1 == 0x0A) 7739 : : { 7740 : : switch(var2) 7741 : : { 7742 : : case 0x00ul: 7743 : : return true; 7744 : : case 0x01ul: 7745 : : return true; 7746 : : case 0x02ul: 7747 : : return true; 7748 : : default: 7749 : : return true; 7750 : : } 7751 : : } 7752 : : #endif 7753 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 7754 : : if (var1 == 0x0E) 7755 : : { 7756 : : switch(var2) 7757 : : { 7758 : : case 0x00ul: 7759 : : return true; 7760 : : case 0x01ul: 7761 : : return true; 7762 : : default: 7763 : : return true; 7764 : : } 7765 : : } 7766 : : #endif 7767 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 7768 : : if (var1 == 0x0F) 7769 : : { 7770 : : switch(var2) 7771 : : { 7772 : : case 0x00ul: 7773 : : return true; 7774 : : case 0x01ul: 7775 : : return true; 7776 : : default: 7777 : : return true; 7778 : : } 7779 : : } 7780 : : #endif 7781 : : return false; 7782 : : #endif 7783 : : } 7784 : : 7785 : : /* ========= Errata 158 ========= */ 7786 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7787 : : #define NRF52_ERRATA_158_PRESENT 1 7788 : : #else 7789 : : #define NRF52_ERRATA_158_PRESENT 0 7790 : : #endif 7791 : : 7792 : : #ifndef NRF52_ERRATA_158_ENABLE_WORKAROUND 7793 : : #define NRF52_ERRATA_158_ENABLE_WORKAROUND NRF52_ERRATA_158_PRESENT 7794 : : #endif 7795 : : 7796 : 0 : static bool nrf52_errata_158(void) 7797 : : { 7798 : : #ifndef NRF52_SERIES 7799 : 0 : return false; 7800 : : #else 7801 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7802 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 7803 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 7804 : : #endif 7805 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7806 : : if (var1 == 0x08) 7807 : : { 7808 : : switch(var2) 7809 : : { 7810 : : case 0x00ul: 7811 : : return true; 7812 : : case 0x01ul: 7813 : : return false; 7814 : : case 0x02ul: 7815 : : return false; 7816 : : case 0x03ul: 7817 : : return false; 7818 : : case 0x04ul: 7819 : : return false; 7820 : : case 0x05ul: 7821 : : return false; 7822 : : default: 7823 : : return false; 7824 : : } 7825 : : } 7826 : : #endif 7827 : : return false; 7828 : : #endif 7829 : : } 7830 : : 7831 : : /* ========= Errata 160 ========= */ 7832 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7833 : : #define NRF52_ERRATA_160_PRESENT 1 7834 : : #else 7835 : : #define NRF52_ERRATA_160_PRESENT 0 7836 : : #endif 7837 : : 7838 : : #ifndef NRF52_ERRATA_160_ENABLE_WORKAROUND 7839 : : #define NRF52_ERRATA_160_ENABLE_WORKAROUND NRF52_ERRATA_160_PRESENT 7840 : : #endif 7841 : : 7842 : 0 : static bool nrf52_errata_160(void) 7843 : : { 7844 : : #ifndef NRF52_SERIES 7845 : 0 : return false; 7846 : : #else 7847 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7848 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 7849 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 7850 : : #endif 7851 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7852 : : if (var1 == 0x08) 7853 : : { 7854 : : switch(var2) 7855 : : { 7856 : : case 0x00ul: 7857 : : return true; 7858 : : case 0x01ul: 7859 : : return false; 7860 : : case 0x02ul: 7861 : : return false; 7862 : : case 0x03ul: 7863 : : return false; 7864 : : case 0x04ul: 7865 : : return false; 7866 : : case 0x05ul: 7867 : : return false; 7868 : : default: 7869 : : return false; 7870 : : } 7871 : : } 7872 : : #endif 7873 : : return false; 7874 : : #endif 7875 : : } 7876 : : 7877 : : /* ========= Errata 162 ========= */ 7878 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7879 : : #define NRF52_ERRATA_162_PRESENT 1 7880 : : #else 7881 : : #define NRF52_ERRATA_162_PRESENT 0 7882 : : #endif 7883 : : 7884 : : #ifndef NRF52_ERRATA_162_ENABLE_WORKAROUND 7885 : : #define NRF52_ERRATA_162_ENABLE_WORKAROUND NRF52_ERRATA_162_PRESENT 7886 : : #endif 7887 : : 7888 : 0 : static bool nrf52_errata_162(void) 7889 : : { 7890 : : #ifndef NRF52_SERIES 7891 : 0 : return false; 7892 : : #else 7893 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7894 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 7895 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 7896 : : #endif 7897 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7898 : : if (var1 == 0x08) 7899 : : { 7900 : : switch(var2) 7901 : : { 7902 : : case 0x00ul: 7903 : : return true; 7904 : : case 0x01ul: 7905 : : return false; 7906 : : case 0x02ul: 7907 : : return false; 7908 : : case 0x03ul: 7909 : : return false; 7910 : : case 0x04ul: 7911 : : return false; 7912 : : case 0x05ul: 7913 : : return false; 7914 : : default: 7915 : : return false; 7916 : : } 7917 : : } 7918 : : #endif 7919 : : return false; 7920 : : #endif 7921 : : } 7922 : : 7923 : : /* ========= Errata 163 ========= */ 7924 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 7925 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 7926 : : #define NRF52_ERRATA_163_PRESENT 1 7927 : : #else 7928 : : #define NRF52_ERRATA_163_PRESENT 0 7929 : : #endif 7930 : : 7931 : : #ifndef NRF52_ERRATA_163_ENABLE_WORKAROUND 7932 : : #define NRF52_ERRATA_163_ENABLE_WORKAROUND NRF52_ERRATA_163_PRESENT 7933 : : #endif 7934 : : 7935 : 0 : static bool nrf52_errata_163(void) 7936 : : { 7937 : : #ifndef NRF52_SERIES 7938 : 0 : return false; 7939 : : #else 7940 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 7941 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 7942 : : uint32_t var1; 7943 : : uint32_t var2; 7944 : : 7945 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 7946 : : { 7947 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 7948 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 7949 : : } 7950 : : else 7951 : : { 7952 : : var1 = *(uint32_t *)0x10000130ul; 7953 : : var2 = *(uint32_t *)0x10000134ul; 7954 : : } 7955 : : #endif 7956 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 7957 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 7958 : : if (var1 == 0x06) 7959 : : { 7960 : : switch(var2) 7961 : : { 7962 : : case 0x03ul: 7963 : : return false; 7964 : : case 0x04ul: 7965 : : return false; 7966 : : case 0x05ul: 7967 : : return true; 7968 : : case 0x06ul: 7969 : : return false; 7970 : : case 0x07ul: 7971 : : return false; 7972 : : default: 7973 : : return false; 7974 : : } 7975 : : } 7976 : : #endif 7977 : : return false; 7978 : : #endif 7979 : : } 7980 : : 7981 : : /* ========= Errata 164 ========= */ 7982 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7983 : : #define NRF52_ERRATA_164_PRESENT 1 7984 : : #else 7985 : : #define NRF52_ERRATA_164_PRESENT 0 7986 : : #endif 7987 : : 7988 : : #ifndef NRF52_ERRATA_164_ENABLE_WORKAROUND 7989 : : #define NRF52_ERRATA_164_ENABLE_WORKAROUND NRF52_ERRATA_164_PRESENT 7990 : : #endif 7991 : : 7992 : 0 : static bool nrf52_errata_164(void) 7993 : : { 7994 : : #ifndef NRF52_SERIES 7995 : 0 : return false; 7996 : : #else 7997 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 7998 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 7999 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 8000 : : #endif 8001 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8002 : : if (var1 == 0x08) 8003 : : { 8004 : : switch(var2) 8005 : : { 8006 : : case 0x00ul: 8007 : : return true; 8008 : : case 0x01ul: 8009 : : return false; 8010 : : case 0x02ul: 8011 : : return false; 8012 : : case 0x03ul: 8013 : : return false; 8014 : : case 0x04ul: 8015 : : return false; 8016 : : case 0x05ul: 8017 : : return false; 8018 : : default: 8019 : : return false; 8020 : : } 8021 : : } 8022 : : #endif 8023 : : return false; 8024 : : #endif 8025 : : } 8026 : : 8027 : : /* ========= Errata 166 ========= */ 8028 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8029 : : #define NRF52_ERRATA_166_PRESENT 1 8030 : : #else 8031 : : #define NRF52_ERRATA_166_PRESENT 0 8032 : : #endif 8033 : : 8034 : : #ifndef NRF52_ERRATA_166_ENABLE_WORKAROUND 8035 : : #define NRF52_ERRATA_166_ENABLE_WORKAROUND NRF52_ERRATA_166_PRESENT 8036 : : #endif 8037 : : 8038 : 0 : static bool nrf52_errata_166(void) 8039 : : { 8040 : : #ifndef NRF52_SERIES 8041 : 0 : return false; 8042 : : #else 8043 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8044 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 8045 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 8046 : : #endif 8047 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8048 : : if (var1 == 0x08) 8049 : : { 8050 : : switch(var2) 8051 : : { 8052 : : case 0x00ul: 8053 : : return true; 8054 : : case 0x01ul: 8055 : : return true; 8056 : : case 0x02ul: 8057 : : return true; 8058 : : case 0x03ul: 8059 : : return true; 8060 : : case 0x04ul: 8061 : : return true; 8062 : : case 0x05ul: 8063 : : return true; 8064 : : default: 8065 : : return true; 8066 : : } 8067 : : } 8068 : : #endif 8069 : : return false; 8070 : : #endif 8071 : : } 8072 : : 8073 : : /* ========= Errata 170 ========= */ 8074 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 8075 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 8076 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8077 : : #define NRF52_ERRATA_170_PRESENT 1 8078 : : #else 8079 : : #define NRF52_ERRATA_170_PRESENT 0 8080 : : #endif 8081 : : 8082 : : #ifndef NRF52_ERRATA_170_ENABLE_WORKAROUND 8083 : : #define NRF52_ERRATA_170_ENABLE_WORKAROUND NRF52_ERRATA_170_PRESENT 8084 : : #endif 8085 : : 8086 : 0 : static bool nrf52_errata_170(void) 8087 : : { 8088 : : #ifndef NRF52_SERIES 8089 : 0 : return false; 8090 : : #else 8091 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 8092 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 8093 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8094 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 8095 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 8096 : : #endif 8097 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8098 : : if (var1 == 0x08) 8099 : : { 8100 : : switch(var2) 8101 : : { 8102 : : case 0x00ul: 8103 : : return true; 8104 : : case 0x01ul: 8105 : : return true; 8106 : : case 0x02ul: 8107 : : return true; 8108 : : case 0x03ul: 8109 : : return true; 8110 : : case 0x04ul: 8111 : : return true; 8112 : : case 0x05ul: 8113 : : return true; 8114 : : default: 8115 : : return true; 8116 : : } 8117 : : } 8118 : : #endif 8119 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 8120 : : if (var1 == 0x0D) 8121 : : { 8122 : : switch(var2) 8123 : : { 8124 : : case 0x00ul: 8125 : : return true; 8126 : : case 0x01ul: 8127 : : return true; 8128 : : default: 8129 : : return true; 8130 : : } 8131 : : } 8132 : : #endif 8133 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 8134 : : if (var1 == 0x10) 8135 : : { 8136 : : switch(var2) 8137 : : { 8138 : : case 0x00ul: 8139 : : return true; 8140 : : case 0x01ul: 8141 : : return true; 8142 : : case 0x02ul: 8143 : : return false; 8144 : : case 0x03ul: 8145 : : return false; 8146 : : default: 8147 : : return false; 8148 : : } 8149 : : } 8150 : : #endif 8151 : : return false; 8152 : : #endif 8153 : : } 8154 : : 8155 : : /* ========= Errata 171 ========= */ 8156 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8157 : : #define NRF52_ERRATA_171_PRESENT 1 8158 : : #else 8159 : : #define NRF52_ERRATA_171_PRESENT 0 8160 : : #endif 8161 : : 8162 : : #ifndef NRF52_ERRATA_171_ENABLE_WORKAROUND 8163 : : #define NRF52_ERRATA_171_ENABLE_WORKAROUND NRF52_ERRATA_171_PRESENT 8164 : : #endif 8165 : : 8166 : 0 : static bool nrf52_errata_171(void) 8167 : : { 8168 : : #ifndef NRF52_SERIES 8169 : 0 : return false; 8170 : : #else 8171 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8172 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 8173 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 8174 : : #endif 8175 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8176 : : if (var1 == 0x08) 8177 : : { 8178 : : switch(var2) 8179 : : { 8180 : : case 0x00ul: 8181 : : return true; 8182 : : case 0x01ul: 8183 : : return true; 8184 : : case 0x02ul: 8185 : : return true; 8186 : : case 0x03ul: 8187 : : return true; 8188 : : case 0x04ul: 8189 : : return true; 8190 : : case 0x05ul: 8191 : : return true; 8192 : : default: 8193 : : return true; 8194 : : } 8195 : : } 8196 : : #endif 8197 : : return false; 8198 : : #endif 8199 : : } 8200 : : 8201 : : /* ========= Errata 172 ========= */ 8202 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8203 : : #define NRF52_ERRATA_172_PRESENT 1 8204 : : #else 8205 : : #define NRF52_ERRATA_172_PRESENT 0 8206 : : #endif 8207 : : 8208 : : #ifndef NRF52_ERRATA_172_ENABLE_WORKAROUND 8209 : : #define NRF52_ERRATA_172_ENABLE_WORKAROUND NRF52_ERRATA_172_PRESENT 8210 : : #endif 8211 : : 8212 : 0 : static bool nrf52_errata_172(void) 8213 : : { 8214 : : #ifndef NRF52_SERIES 8215 : 0 : return false; 8216 : : #else 8217 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8218 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 8219 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 8220 : : #endif 8221 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8222 : : if (var1 == 0x08) 8223 : : { 8224 : : switch(var2) 8225 : : { 8226 : : case 0x00ul: 8227 : : return false; 8228 : : case 0x01ul: 8229 : : return true; 8230 : : case 0x02ul: 8231 : : return true; 8232 : : case 0x03ul: 8233 : : return true; 8234 : : case 0x04ul: 8235 : : return true; 8236 : : case 0x05ul: 8237 : : return true; 8238 : : default: 8239 : : return true; 8240 : : } 8241 : : } 8242 : : #endif 8243 : : return false; 8244 : : #endif 8245 : : } 8246 : : 8247 : : /* ========= Errata 173 ========= */ 8248 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 8249 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 8250 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 8251 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 8252 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 8253 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 8254 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 8255 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8256 : : #define NRF52_ERRATA_173_PRESENT 1 8257 : : #else 8258 : : #define NRF52_ERRATA_173_PRESENT 0 8259 : : #endif 8260 : : 8261 : : #ifndef NRF52_ERRATA_173_ENABLE_WORKAROUND 8262 : : #define NRF52_ERRATA_173_ENABLE_WORKAROUND NRF52_ERRATA_173_PRESENT 8263 : : #endif 8264 : : 8265 : 0 : static bool nrf52_errata_173(void) 8266 : : { 8267 : : #ifndef NRF52_SERIES 8268 : 0 : return false; 8269 : : #else 8270 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 8271 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 8272 : : uint32_t var1; 8273 : : uint32_t var2; 8274 : : 8275 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 8276 : : { 8277 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 8278 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 8279 : : } 8280 : : else 8281 : : { 8282 : : var1 = *(uint32_t *)0x10000130ul; 8283 : : var2 = *(uint32_t *)0x10000134ul; 8284 : : } 8285 : : #elif defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 8286 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 8287 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 8288 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 8289 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 8290 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8291 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 8292 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 8293 : : #endif 8294 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 8295 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 8296 : : if (var1 == 0x06) 8297 : : { 8298 : : switch(var2) 8299 : : { 8300 : : case 0x03ul: 8301 : : return false; 8302 : : case 0x04ul: 8303 : : return false; 8304 : : case 0x05ul: 8305 : : return true; 8306 : : case 0x06ul: 8307 : : return true; 8308 : : case 0x07ul: 8309 : : return true; 8310 : : default: 8311 : : return true; 8312 : : } 8313 : : } 8314 : : #endif 8315 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8316 : : if (var1 == 0x08) 8317 : : { 8318 : : switch(var2) 8319 : : { 8320 : : case 0x00ul: 8321 : : return true; 8322 : : case 0x01ul: 8323 : : return true; 8324 : : case 0x02ul: 8325 : : return true; 8326 : : case 0x03ul: 8327 : : return true; 8328 : : case 0x04ul: 8329 : : return true; 8330 : : case 0x05ul: 8331 : : return true; 8332 : : default: 8333 : : return true; 8334 : : } 8335 : : } 8336 : : #endif 8337 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 8338 : : if (var1 == 0x0A) 8339 : : { 8340 : : switch(var2) 8341 : : { 8342 : : case 0x00ul: 8343 : : return true; 8344 : : case 0x01ul: 8345 : : return true; 8346 : : case 0x02ul: 8347 : : return true; 8348 : : default: 8349 : : return true; 8350 : : } 8351 : : } 8352 : : #endif 8353 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 8354 : : if (var1 == 0x0D) 8355 : : { 8356 : : switch(var2) 8357 : : { 8358 : : case 0x00ul: 8359 : : return true; 8360 : : case 0x01ul: 8361 : : return true; 8362 : : default: 8363 : : return true; 8364 : : } 8365 : : } 8366 : : #endif 8367 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 8368 : : if (var1 == 0x0E) 8369 : : { 8370 : : switch(var2) 8371 : : { 8372 : : case 0x00ul: 8373 : : return true; 8374 : : case 0x01ul: 8375 : : return true; 8376 : : default: 8377 : : return true; 8378 : : } 8379 : : } 8380 : : #endif 8381 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 8382 : : if (var1 == 0x0F) 8383 : : { 8384 : : switch(var2) 8385 : : { 8386 : : case 0x00ul: 8387 : : return true; 8388 : : case 0x01ul: 8389 : : return true; 8390 : : default: 8391 : : return true; 8392 : : } 8393 : : } 8394 : : #endif 8395 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 8396 : : if (var1 == 0x10) 8397 : : { 8398 : : switch(var2) 8399 : : { 8400 : : case 0x00ul: 8401 : : return true; 8402 : : case 0x01ul: 8403 : : return true; 8404 : : case 0x02ul: 8405 : : return true; 8406 : : case 0x03ul: 8407 : : return true; 8408 : : default: 8409 : : return true; 8410 : : } 8411 : : } 8412 : : #endif 8413 : : return false; 8414 : : #endif 8415 : : } 8416 : : 8417 : : /* ========= Errata 174 ========= */ 8418 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8419 : : #define NRF52_ERRATA_174_PRESENT 1 8420 : : #else 8421 : : #define NRF52_ERRATA_174_PRESENT 0 8422 : : #endif 8423 : : 8424 : : #ifndef NRF52_ERRATA_174_ENABLE_WORKAROUND 8425 : : #define NRF52_ERRATA_174_ENABLE_WORKAROUND NRF52_ERRATA_174_PRESENT 8426 : : #endif 8427 : : 8428 : 0 : static bool nrf52_errata_174(void) 8429 : : { 8430 : : #ifndef NRF52_SERIES 8431 : 0 : return false; 8432 : : #else 8433 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8434 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 8435 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 8436 : : #endif 8437 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8438 : : if (var1 == 0x08) 8439 : : { 8440 : : switch(var2) 8441 : : { 8442 : : case 0x00ul: 8443 : : return false; 8444 : : case 0x01ul: 8445 : : return true; 8446 : : case 0x02ul: 8447 : : return true; 8448 : : case 0x03ul: 8449 : : return true; 8450 : : case 0x04ul: 8451 : : return true; 8452 : : case 0x05ul: 8453 : : return true; 8454 : : default: 8455 : : return true; 8456 : : } 8457 : : } 8458 : : #endif 8459 : : return false; 8460 : : #endif 8461 : : } 8462 : : 8463 : : /* ========= Errata 176 ========= */ 8464 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 8465 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 8466 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 8467 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 8468 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 8469 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 8470 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 8471 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8472 : : #define NRF52_ERRATA_176_PRESENT 1 8473 : : #else 8474 : : #define NRF52_ERRATA_176_PRESENT 0 8475 : : #endif 8476 : : 8477 : : #ifndef NRF52_ERRATA_176_ENABLE_WORKAROUND 8478 : : #define NRF52_ERRATA_176_ENABLE_WORKAROUND NRF52_ERRATA_176_PRESENT 8479 : : #endif 8480 : : 8481 : 0 : static bool nrf52_errata_176(void) 8482 : : { 8483 : : #ifndef NRF52_SERIES 8484 : 0 : return false; 8485 : : #else 8486 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 8487 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 8488 : : uint32_t var1; 8489 : : uint32_t var2; 8490 : : 8491 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 8492 : : { 8493 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 8494 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 8495 : : } 8496 : : else 8497 : : { 8498 : : var1 = *(uint32_t *)0x10000130ul; 8499 : : var2 = *(uint32_t *)0x10000134ul; 8500 : : } 8501 : : #elif defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 8502 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 8503 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 8504 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 8505 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 8506 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8507 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 8508 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 8509 : : #endif 8510 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 8511 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 8512 : : if (var1 == 0x06) 8513 : : { 8514 : : switch(var2) 8515 : : { 8516 : : case 0x03ul: 8517 : : return false; 8518 : : case 0x04ul: 8519 : : return false; 8520 : : case 0x05ul: 8521 : : return true; 8522 : : case 0x06ul: 8523 : : return true; 8524 : : case 0x07ul: 8525 : : return true; 8526 : : default: 8527 : : return true; 8528 : : } 8529 : : } 8530 : : #endif 8531 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8532 : : if (var1 == 0x08) 8533 : : { 8534 : : switch(var2) 8535 : : { 8536 : : case 0x00ul: 8537 : : return true; 8538 : : case 0x01ul: 8539 : : return true; 8540 : : case 0x02ul: 8541 : : return true; 8542 : : case 0x03ul: 8543 : : return true; 8544 : : case 0x04ul: 8545 : : return true; 8546 : : case 0x05ul: 8547 : : return true; 8548 : : default: 8549 : : return true; 8550 : : } 8551 : : } 8552 : : #endif 8553 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 8554 : : if (var1 == 0x0A) 8555 : : { 8556 : : switch(var2) 8557 : : { 8558 : : case 0x00ul: 8559 : : return true; 8560 : : case 0x01ul: 8561 : : return true; 8562 : : case 0x02ul: 8563 : : return true; 8564 : : default: 8565 : : return true; 8566 : : } 8567 : : } 8568 : : #endif 8569 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 8570 : : if (var1 == 0x0D) 8571 : : { 8572 : : switch(var2) 8573 : : { 8574 : : case 0x00ul: 8575 : : return true; 8576 : : case 0x01ul: 8577 : : return true; 8578 : : default: 8579 : : return true; 8580 : : } 8581 : : } 8582 : : #endif 8583 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 8584 : : if (var1 == 0x0E) 8585 : : { 8586 : : switch(var2) 8587 : : { 8588 : : case 0x00ul: 8589 : : return true; 8590 : : case 0x01ul: 8591 : : return true; 8592 : : default: 8593 : : return true; 8594 : : } 8595 : : } 8596 : : #endif 8597 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 8598 : : if (var1 == 0x0F) 8599 : : { 8600 : : switch(var2) 8601 : : { 8602 : : case 0x00ul: 8603 : : return true; 8604 : : case 0x01ul: 8605 : : return true; 8606 : : default: 8607 : : return true; 8608 : : } 8609 : : } 8610 : : #endif 8611 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 8612 : : if (var1 == 0x10) 8613 : : { 8614 : : switch(var2) 8615 : : { 8616 : : case 0x00ul: 8617 : : return true; 8618 : : case 0x01ul: 8619 : : return true; 8620 : : case 0x02ul: 8621 : : return true; 8622 : : case 0x03ul: 8623 : : return true; 8624 : : default: 8625 : : return true; 8626 : : } 8627 : : } 8628 : : #endif 8629 : : return false; 8630 : : #endif 8631 : : } 8632 : : 8633 : : /* ========= Errata 178 ========= */ 8634 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 8635 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 8636 : : #define NRF52_ERRATA_178_PRESENT 1 8637 : : #else 8638 : : #define NRF52_ERRATA_178_PRESENT 0 8639 : : #endif 8640 : : 8641 : : #ifndef NRF52_ERRATA_178_ENABLE_WORKAROUND 8642 : : #define NRF52_ERRATA_178_ENABLE_WORKAROUND NRF52_ERRATA_178_PRESENT 8643 : : #endif 8644 : : 8645 : 0 : static bool nrf52_errata_178(void) 8646 : : { 8647 : : #ifndef NRF52_SERIES 8648 : 0 : return false; 8649 : : #else 8650 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 8651 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 8652 : : uint32_t var1; 8653 : : uint32_t var2; 8654 : : 8655 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 8656 : : { 8657 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 8658 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 8659 : : } 8660 : : else 8661 : : { 8662 : : var1 = *(uint32_t *)0x10000130ul; 8663 : : var2 = *(uint32_t *)0x10000134ul; 8664 : : } 8665 : : #endif 8666 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 8667 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 8668 : : if (var1 == 0x06) 8669 : : { 8670 : : switch(var2) 8671 : : { 8672 : : case 0x03ul: 8673 : : return false; 8674 : : case 0x04ul: 8675 : : return false; 8676 : : case 0x05ul: 8677 : : return true; 8678 : : case 0x06ul: 8679 : : return true; 8680 : : case 0x07ul: 8681 : : return true; 8682 : : default: 8683 : : return true; 8684 : : } 8685 : : } 8686 : : #endif 8687 : : return false; 8688 : : #endif 8689 : : } 8690 : : 8691 : : /* ========= Errata 179 ========= */ 8692 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 8693 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 8694 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 8695 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 8696 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 8697 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8698 : : #define NRF52_ERRATA_179_PRESENT 1 8699 : : #else 8700 : : #define NRF52_ERRATA_179_PRESENT 0 8701 : : #endif 8702 : : 8703 : : #ifndef NRF52_ERRATA_179_ENABLE_WORKAROUND 8704 : : #define NRF52_ERRATA_179_ENABLE_WORKAROUND NRF52_ERRATA_179_PRESENT 8705 : : #endif 8706 : : 8707 : 0 : static bool nrf52_errata_179(void) 8708 : : { 8709 : : #ifndef NRF52_SERIES 8710 : 0 : return false; 8711 : : #else 8712 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 8713 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 8714 : : uint32_t var1; 8715 : : uint32_t var2; 8716 : : 8717 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 8718 : : { 8719 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 8720 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 8721 : : } 8722 : : else 8723 : : { 8724 : : var1 = *(uint32_t *)0x10000130ul; 8725 : : var2 = *(uint32_t *)0x10000134ul; 8726 : : } 8727 : : #elif defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 8728 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 8729 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 8730 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8731 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 8732 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 8733 : : #endif 8734 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 8735 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 8736 : : if (var1 == 0x06) 8737 : : { 8738 : : switch(var2) 8739 : : { 8740 : : case 0x03ul: 8741 : : return false; 8742 : : case 0x04ul: 8743 : : return false; 8744 : : case 0x05ul: 8745 : : return true; 8746 : : case 0x06ul: 8747 : : return true; 8748 : : case 0x07ul: 8749 : : return true; 8750 : : default: 8751 : : return true; 8752 : : } 8753 : : } 8754 : : #endif 8755 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8756 : : if (var1 == 0x08) 8757 : : { 8758 : : switch(var2) 8759 : : { 8760 : : case 0x00ul: 8761 : : return true; 8762 : : case 0x01ul: 8763 : : return true; 8764 : : case 0x02ul: 8765 : : return true; 8766 : : case 0x03ul: 8767 : : return true; 8768 : : case 0x04ul: 8769 : : return true; 8770 : : case 0x05ul: 8771 : : return true; 8772 : : default: 8773 : : return true; 8774 : : } 8775 : : } 8776 : : #endif 8777 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 8778 : : if (var1 == 0x0A) 8779 : : { 8780 : : switch(var2) 8781 : : { 8782 : : case 0x00ul: 8783 : : return true; 8784 : : case 0x01ul: 8785 : : return true; 8786 : : case 0x02ul: 8787 : : return true; 8788 : : default: 8789 : : return true; 8790 : : } 8791 : : } 8792 : : #endif 8793 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 8794 : : if (var1 == 0x0E) 8795 : : { 8796 : : switch(var2) 8797 : : { 8798 : : case 0x00ul: 8799 : : return true; 8800 : : case 0x01ul: 8801 : : return true; 8802 : : default: 8803 : : return true; 8804 : : } 8805 : : } 8806 : : #endif 8807 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 8808 : : if (var1 == 0x0F) 8809 : : { 8810 : : switch(var2) 8811 : : { 8812 : : case 0x00ul: 8813 : : return true; 8814 : : case 0x01ul: 8815 : : return true; 8816 : : default: 8817 : : return true; 8818 : : } 8819 : : } 8820 : : #endif 8821 : : return false; 8822 : : #endif 8823 : : } 8824 : : 8825 : : /* ========= Errata 180 ========= */ 8826 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8827 : : #define NRF52_ERRATA_180_PRESENT 1 8828 : : #else 8829 : : #define NRF52_ERRATA_180_PRESENT 0 8830 : : #endif 8831 : : 8832 : : #ifndef NRF52_ERRATA_180_ENABLE_WORKAROUND 8833 : : #define NRF52_ERRATA_180_ENABLE_WORKAROUND NRF52_ERRATA_180_PRESENT 8834 : : #endif 8835 : : 8836 : 0 : static bool nrf52_errata_180(void) 8837 : : { 8838 : : #ifndef NRF52_SERIES 8839 : 0 : return false; 8840 : : #else 8841 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8842 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 8843 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 8844 : : #endif 8845 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8846 : : if (var1 == 0x08) 8847 : : { 8848 : : switch(var2) 8849 : : { 8850 : : case 0x00ul: 8851 : : return true; 8852 : : case 0x01ul: 8853 : : return false; 8854 : : case 0x02ul: 8855 : : return false; 8856 : : case 0x03ul: 8857 : : return false; 8858 : : case 0x04ul: 8859 : : return false; 8860 : : case 0x05ul: 8861 : : return false; 8862 : : default: 8863 : : return false; 8864 : : } 8865 : : } 8866 : : #endif 8867 : : return false; 8868 : : #endif 8869 : : } 8870 : : 8871 : : /* ========= Errata 181 ========= */ 8872 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 8873 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 8874 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8875 : : #define NRF52_ERRATA_181_PRESENT 1 8876 : : #else 8877 : : #define NRF52_ERRATA_181_PRESENT 0 8878 : : #endif 8879 : : 8880 : : #ifndef NRF52_ERRATA_181_ENABLE_WORKAROUND 8881 : : #define NRF52_ERRATA_181_ENABLE_WORKAROUND NRF52_ERRATA_181_PRESENT 8882 : : #endif 8883 : : 8884 : 0 : static bool nrf52_errata_181(void) 8885 : : { 8886 : : #ifndef NRF52_SERIES 8887 : 0 : return false; 8888 : : #else 8889 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 8890 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 8891 : : uint32_t var1; 8892 : : uint32_t var2; 8893 : : 8894 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 8895 : : { 8896 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 8897 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 8898 : : } 8899 : : else 8900 : : { 8901 : : var1 = *(uint32_t *)0x10000130ul; 8902 : : var2 = *(uint32_t *)0x10000134ul; 8903 : : } 8904 : : #elif defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8905 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 8906 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 8907 : : #endif 8908 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 8909 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 8910 : : if (var1 == 0x06) 8911 : : { 8912 : : switch(var2) 8913 : : { 8914 : : case 0x03ul: 8915 : : return false; 8916 : : case 0x04ul: 8917 : : return false; 8918 : : case 0x05ul: 8919 : : return true; 8920 : : case 0x06ul: 8921 : : return false; 8922 : : case 0x07ul: 8923 : : return false; 8924 : : default: 8925 : : return false; 8926 : : } 8927 : : } 8928 : : #endif 8929 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 8930 : : if (var1 == 0x08) 8931 : : { 8932 : : switch(var2) 8933 : : { 8934 : : case 0x00ul: 8935 : : return true; 8936 : : case 0x01ul: 8937 : : return false; 8938 : : case 0x02ul: 8939 : : return false; 8940 : : case 0x03ul: 8941 : : return false; 8942 : : case 0x04ul: 8943 : : return false; 8944 : : case 0x05ul: 8945 : : return false; 8946 : : default: 8947 : : return false; 8948 : : } 8949 : : } 8950 : : #endif 8951 : : return false; 8952 : : #endif 8953 : : } 8954 : : 8955 : : /* ========= Errata 182 ========= */ 8956 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 8957 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 8958 : : #define NRF52_ERRATA_182_PRESENT 1 8959 : : #else 8960 : : #define NRF52_ERRATA_182_PRESENT 0 8961 : : #endif 8962 : : 8963 : : #ifndef NRF52_ERRATA_182_ENABLE_WORKAROUND 8964 : : #define NRF52_ERRATA_182_ENABLE_WORKAROUND NRF52_ERRATA_182_PRESENT 8965 : : #endif 8966 : : 8967 : 0 : static bool nrf52_errata_182(void) 8968 : : { 8969 : : #ifndef NRF52_SERIES 8970 : 0 : return false; 8971 : : #else 8972 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 8973 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 8974 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 8975 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 8976 : : #endif 8977 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 8978 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 8979 : : if (var1 == 0x06) 8980 : : { 8981 : : switch(var2) 8982 : : { 8983 : : case 0x03ul: 8984 : : return false; 8985 : : case 0x04ul: 8986 : : return false; 8987 : : case 0x05ul: 8988 : : return false; 8989 : : case 0x06ul: 8990 : : return true; 8991 : : case 0x07ul: 8992 : : return true; 8993 : : default: 8994 : : return true; 8995 : : } 8996 : : } 8997 : : #endif 8998 : : return false; 8999 : : #endif 9000 : : } 9001 : : 9002 : : /* ========= Errata 183 ========= */ 9003 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 9004 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 9005 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 9006 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 9007 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 9008 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 9009 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9010 : : #define NRF52_ERRATA_183_PRESENT 1 9011 : : #else 9012 : : #define NRF52_ERRATA_183_PRESENT 0 9013 : : #endif 9014 : : 9015 : : #ifndef NRF52_ERRATA_183_ENABLE_WORKAROUND 9016 : : #define NRF52_ERRATA_183_ENABLE_WORKAROUND NRF52_ERRATA_183_PRESENT 9017 : : #endif 9018 : : 9019 : 0 : static bool nrf52_errata_183(void) 9020 : : { 9021 : : #ifndef NRF52_SERIES 9022 : 0 : return false; 9023 : : #else 9024 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 9025 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 9026 : : uint32_t var1; 9027 : : uint32_t var2; 9028 : : 9029 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 9030 : : { 9031 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 9032 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 9033 : : } 9034 : : else 9035 : : { 9036 : : var1 = *(uint32_t *)0x10000130ul; 9037 : : var2 = *(uint32_t *)0x10000134ul; 9038 : : } 9039 : : #elif defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 9040 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 9041 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 9042 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 9043 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9044 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 9045 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 9046 : : #endif 9047 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 9048 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 9049 : : if (var1 == 0x06) 9050 : : { 9051 : : switch(var2) 9052 : : { 9053 : : case 0x03ul: 9054 : : return false; 9055 : : case 0x04ul: 9056 : : return false; 9057 : : case 0x05ul: 9058 : : return true; 9059 : : case 0x06ul: 9060 : : return true; 9061 : : case 0x07ul: 9062 : : return true; 9063 : : default: 9064 : : return true; 9065 : : } 9066 : : } 9067 : : #endif 9068 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9069 : : if (var1 == 0x08) 9070 : : { 9071 : : switch(var2) 9072 : : { 9073 : : case 0x00ul: 9074 : : return true; 9075 : : case 0x01ul: 9076 : : return true; 9077 : : case 0x02ul: 9078 : : return true; 9079 : : case 0x03ul: 9080 : : return true; 9081 : : case 0x04ul: 9082 : : return true; 9083 : : case 0x05ul: 9084 : : return true; 9085 : : default: 9086 : : return true; 9087 : : } 9088 : : } 9089 : : #endif 9090 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 9091 : : if (var1 == 0x0A) 9092 : : { 9093 : : switch(var2) 9094 : : { 9095 : : case 0x00ul: 9096 : : return true; 9097 : : case 0x01ul: 9098 : : return true; 9099 : : case 0x02ul: 9100 : : return true; 9101 : : default: 9102 : : return true; 9103 : : } 9104 : : } 9105 : : #endif 9106 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 9107 : : if (var1 == 0x0D) 9108 : : { 9109 : : switch(var2) 9110 : : { 9111 : : case 0x00ul: 9112 : : return true; 9113 : : case 0x01ul: 9114 : : return true; 9115 : : default: 9116 : : return true; 9117 : : } 9118 : : } 9119 : : #endif 9120 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 9121 : : if (var1 == 0x0E) 9122 : : { 9123 : : switch(var2) 9124 : : { 9125 : : case 0x00ul: 9126 : : return true; 9127 : : case 0x01ul: 9128 : : return true; 9129 : : default: 9130 : : return true; 9131 : : } 9132 : : } 9133 : : #endif 9134 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 9135 : : if (var1 == 0x10) 9136 : : { 9137 : : switch(var2) 9138 : : { 9139 : : case 0x00ul: 9140 : : return true; 9141 : : case 0x01ul: 9142 : : return true; 9143 : : case 0x02ul: 9144 : : return false; 9145 : : case 0x03ul: 9146 : : return false; 9147 : : default: 9148 : : return false; 9149 : : } 9150 : : } 9151 : : #endif 9152 : : return false; 9153 : : #endif 9154 : : } 9155 : : 9156 : : /* ========= Errata 184 ========= */ 9157 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 9158 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 9159 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 9160 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 9161 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 9162 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9163 : : #define NRF52_ERRATA_184_PRESENT 1 9164 : : #else 9165 : : #define NRF52_ERRATA_184_PRESENT 0 9166 : : #endif 9167 : : 9168 : : #ifndef NRF52_ERRATA_184_ENABLE_WORKAROUND 9169 : : #define NRF52_ERRATA_184_ENABLE_WORKAROUND NRF52_ERRATA_184_PRESENT 9170 : : #endif 9171 : : 9172 : 0 : static bool nrf52_errata_184(void) 9173 : : { 9174 : : #ifndef NRF52_SERIES 9175 : 0 : return false; 9176 : : #else 9177 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 9178 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 9179 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 9180 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 9181 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 9182 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9183 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 9184 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 9185 : : #endif 9186 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9187 : : if (var1 == 0x08) 9188 : : { 9189 : : switch(var2) 9190 : : { 9191 : : case 0x00ul: 9192 : : return true; 9193 : : case 0x01ul: 9194 : : return true; 9195 : : case 0x02ul: 9196 : : return true; 9197 : : case 0x03ul: 9198 : : return true; 9199 : : case 0x04ul: 9200 : : return true; 9201 : : case 0x05ul: 9202 : : return true; 9203 : : default: 9204 : : return true; 9205 : : } 9206 : : } 9207 : : #endif 9208 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 9209 : : if (var1 == 0x0A) 9210 : : { 9211 : : switch(var2) 9212 : : { 9213 : : case 0x00ul: 9214 : : return true; 9215 : : case 0x01ul: 9216 : : return true; 9217 : : case 0x02ul: 9218 : : return true; 9219 : : default: 9220 : : return true; 9221 : : } 9222 : : } 9223 : : #endif 9224 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 9225 : : if (var1 == 0x0D) 9226 : : { 9227 : : switch(var2) 9228 : : { 9229 : : case 0x00ul: 9230 : : return true; 9231 : : case 0x01ul: 9232 : : return true; 9233 : : default: 9234 : : return true; 9235 : : } 9236 : : } 9237 : : #endif 9238 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 9239 : : if (var1 == 0x0E) 9240 : : { 9241 : : switch(var2) 9242 : : { 9243 : : case 0x00ul: 9244 : : return true; 9245 : : case 0x01ul: 9246 : : return true; 9247 : : default: 9248 : : return true; 9249 : : } 9250 : : } 9251 : : #endif 9252 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 9253 : : if (var1 == 0x0F) 9254 : : { 9255 : : switch(var2) 9256 : : { 9257 : : case 0x00ul: 9258 : : return true; 9259 : : case 0x01ul: 9260 : : return true; 9261 : : default: 9262 : : return true; 9263 : : } 9264 : : } 9265 : : #endif 9266 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 9267 : : if (var1 == 0x10) 9268 : : { 9269 : : switch(var2) 9270 : : { 9271 : : case 0x00ul: 9272 : : return true; 9273 : : case 0x01ul: 9274 : : return true; 9275 : : case 0x02ul: 9276 : : return true; 9277 : : case 0x03ul: 9278 : : return true; 9279 : : default: 9280 : : return true; 9281 : : } 9282 : : } 9283 : : #endif 9284 : : return false; 9285 : : #endif 9286 : : } 9287 : : 9288 : : /* ========= Errata 186 ========= */ 9289 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9290 : : #define NRF52_ERRATA_186_PRESENT 1 9291 : : #else 9292 : : #define NRF52_ERRATA_186_PRESENT 0 9293 : : #endif 9294 : : 9295 : : #ifndef NRF52_ERRATA_186_ENABLE_WORKAROUND 9296 : : #define NRF52_ERRATA_186_ENABLE_WORKAROUND NRF52_ERRATA_186_PRESENT 9297 : : #endif 9298 : : 9299 : 0 : static bool nrf52_errata_186(void) 9300 : : { 9301 : : #ifndef NRF52_SERIES 9302 : 0 : return false; 9303 : : #else 9304 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9305 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 9306 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 9307 : : #endif 9308 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9309 : : if (var1 == 0x08) 9310 : : { 9311 : : switch(var2) 9312 : : { 9313 : : case 0x00ul: 9314 : : return false; 9315 : : case 0x01ul: 9316 : : return true; 9317 : : case 0x02ul: 9318 : : return false; 9319 : : case 0x03ul: 9320 : : return false; 9321 : : case 0x04ul: 9322 : : return false; 9323 : : case 0x05ul: 9324 : : return false; 9325 : : default: 9326 : : return false; 9327 : : } 9328 : : } 9329 : : #endif 9330 : : return false; 9331 : : #endif 9332 : : } 9333 : : 9334 : : /* ========= Errata 187 ========= */ 9335 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 9336 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 9337 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9338 : : #define NRF52_ERRATA_187_PRESENT 1 9339 : : #else 9340 : : #define NRF52_ERRATA_187_PRESENT 0 9341 : : #endif 9342 : : 9343 : : #ifndef NRF52_ERRATA_187_ENABLE_WORKAROUND 9344 : : #define NRF52_ERRATA_187_ENABLE_WORKAROUND NRF52_ERRATA_187_PRESENT 9345 : : #endif 9346 : : 9347 : 0 : static bool nrf52_errata_187(void) 9348 : : { 9349 : : #ifndef NRF52_SERIES 9350 : 0 : return false; 9351 : : #else 9352 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 9353 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 9354 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9355 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 9356 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 9357 : : #endif 9358 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9359 : : if (var1 == 0x08) 9360 : : { 9361 : : switch(var2) 9362 : : { 9363 : : case 0x00ul: 9364 : : return false; 9365 : : case 0x01ul: 9366 : : return true; 9367 : : case 0x02ul: 9368 : : return true; 9369 : : case 0x03ul: 9370 : : return true; 9371 : : case 0x04ul: 9372 : : return true; 9373 : : case 0x05ul: 9374 : : return true; 9375 : : default: 9376 : : return true; 9377 : : } 9378 : : } 9379 : : #endif 9380 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 9381 : : if (var1 == 0x0D) 9382 : : { 9383 : : switch(var2) 9384 : : { 9385 : : case 0x00ul: 9386 : : return true; 9387 : : case 0x01ul: 9388 : : return true; 9389 : : default: 9390 : : return true; 9391 : : } 9392 : : } 9393 : : #endif 9394 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 9395 : : if (var1 == 0x10) 9396 : : { 9397 : : switch(var2) 9398 : : { 9399 : : case 0x00ul: 9400 : : return true; 9401 : : case 0x01ul: 9402 : : return true; 9403 : : case 0x02ul: 9404 : : return true; 9405 : : case 0x03ul: 9406 : : return true; 9407 : : default: 9408 : : return true; 9409 : : } 9410 : : } 9411 : : #endif 9412 : : return false; 9413 : : #endif 9414 : : } 9415 : : 9416 : : /* ========= Errata 189 ========= */ 9417 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9418 : : #define NRF52_ERRATA_189_PRESENT 1 9419 : : #else 9420 : : #define NRF52_ERRATA_189_PRESENT 0 9421 : : #endif 9422 : : 9423 : : #ifndef NRF52_ERRATA_189_ENABLE_WORKAROUND 9424 : : #define NRF52_ERRATA_189_ENABLE_WORKAROUND NRF52_ERRATA_189_PRESENT 9425 : : #endif 9426 : : 9427 : 0 : static bool nrf52_errata_189(void) 9428 : : { 9429 : : #ifndef NRF52_SERIES 9430 : 0 : return false; 9431 : : #else 9432 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9433 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 9434 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 9435 : : #endif 9436 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9437 : : if (var1 == 0x08) 9438 : : { 9439 : : switch(var2) 9440 : : { 9441 : : case 0x00ul: 9442 : : return false; 9443 : : case 0x01ul: 9444 : : return true; 9445 : : case 0x02ul: 9446 : : return false; 9447 : : case 0x03ul: 9448 : : return false; 9449 : : case 0x04ul: 9450 : : return false; 9451 : : case 0x05ul: 9452 : : return false; 9453 : : default: 9454 : : return false; 9455 : : } 9456 : : } 9457 : : #endif 9458 : : return false; 9459 : : #endif 9460 : : } 9461 : : 9462 : : /* ========= Errata 190 ========= */ 9463 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 9464 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 9465 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9466 : : #define NRF52_ERRATA_190_PRESENT 1 9467 : : #else 9468 : : #define NRF52_ERRATA_190_PRESENT 0 9469 : : #endif 9470 : : 9471 : : #ifndef NRF52_ERRATA_190_ENABLE_WORKAROUND 9472 : : #define NRF52_ERRATA_190_ENABLE_WORKAROUND NRF52_ERRATA_190_PRESENT 9473 : : #endif 9474 : : 9475 : 0 : static bool nrf52_errata_190(void) 9476 : : { 9477 : : #ifndef NRF52_SERIES 9478 : 0 : return false; 9479 : : #else 9480 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 9481 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 9482 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9483 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 9484 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 9485 : : #endif 9486 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9487 : : if (var1 == 0x08) 9488 : : { 9489 : : switch(var2) 9490 : : { 9491 : : case 0x00ul: 9492 : : return false; 9493 : : case 0x01ul: 9494 : : return true; 9495 : : case 0x02ul: 9496 : : return true; 9497 : : case 0x03ul: 9498 : : return true; 9499 : : case 0x04ul: 9500 : : return true; 9501 : : case 0x05ul: 9502 : : return true; 9503 : : default: 9504 : : return true; 9505 : : } 9506 : : } 9507 : : #endif 9508 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 9509 : : if (var1 == 0x0D) 9510 : : { 9511 : : switch(var2) 9512 : : { 9513 : : case 0x00ul: 9514 : : return true; 9515 : : case 0x01ul: 9516 : : return true; 9517 : : default: 9518 : : return true; 9519 : : } 9520 : : } 9521 : : #endif 9522 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 9523 : : if (var1 == 0x10) 9524 : : { 9525 : : switch(var2) 9526 : : { 9527 : : case 0x00ul: 9528 : : return true; 9529 : : case 0x01ul: 9530 : : return true; 9531 : : case 0x02ul: 9532 : : return false; 9533 : : case 0x03ul: 9534 : : return false; 9535 : : default: 9536 : : return false; 9537 : : } 9538 : : } 9539 : : #endif 9540 : : return false; 9541 : : #endif 9542 : : } 9543 : : 9544 : : /* ========= Errata 191 ========= */ 9545 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9546 : : #define NRF52_ERRATA_191_PRESENT 1 9547 : : #else 9548 : : #define NRF52_ERRATA_191_PRESENT 0 9549 : : #endif 9550 : : 9551 : : #ifndef NRF52_ERRATA_191_ENABLE_WORKAROUND 9552 : : #define NRF52_ERRATA_191_ENABLE_WORKAROUND NRF52_ERRATA_191_PRESENT 9553 : : #endif 9554 : : 9555 : 0 : static bool nrf52_errata_191(void) 9556 : : { 9557 : : #ifndef NRF52_SERIES 9558 : 0 : return false; 9559 : : #else 9560 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9561 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 9562 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 9563 : : #endif 9564 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9565 : : if (var1 == 0x08) 9566 : : { 9567 : : switch(var2) 9568 : : { 9569 : : case 0x00ul: 9570 : : return false; 9571 : : case 0x01ul: 9572 : : return true; 9573 : : case 0x02ul: 9574 : : return true; 9575 : : case 0x03ul: 9576 : : return true; 9577 : : case 0x04ul: 9578 : : return true; 9579 : : case 0x05ul: 9580 : : return true; 9581 : : default: 9582 : : return true; 9583 : : } 9584 : : } 9585 : : #endif 9586 : : return false; 9587 : : #endif 9588 : : } 9589 : : 9590 : : /* ========= Errata 192 ========= */ 9591 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 9592 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 9593 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 9594 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9595 : : #define NRF52_ERRATA_192_PRESENT 1 9596 : : #else 9597 : : #define NRF52_ERRATA_192_PRESENT 0 9598 : : #endif 9599 : : 9600 : : #ifndef NRF52_ERRATA_192_ENABLE_WORKAROUND 9601 : : #define NRF52_ERRATA_192_ENABLE_WORKAROUND NRF52_ERRATA_192_PRESENT 9602 : : #endif 9603 : : 9604 : 0 : static bool nrf52_errata_192(void) 9605 : : { 9606 : : #ifndef NRF52_SERIES 9607 : 0 : return false; 9608 : : #else 9609 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 9610 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 9611 : : uint32_t var1; 9612 : : uint32_t var2; 9613 : : 9614 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 9615 : : { 9616 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 9617 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 9618 : : } 9619 : : else 9620 : : { 9621 : : var1 = *(uint32_t *)0x10000130ul; 9622 : : var2 = *(uint32_t *)0x10000134ul; 9623 : : } 9624 : : #elif defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 9625 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9626 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 9627 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 9628 : : #endif 9629 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 9630 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 9631 : : if (var1 == 0x06) 9632 : : { 9633 : : switch(var2) 9634 : : { 9635 : : case 0x03ul: 9636 : : return false; 9637 : : case 0x04ul: 9638 : : return false; 9639 : : case 0x05ul: 9640 : : return true; 9641 : : case 0x06ul: 9642 : : return true; 9643 : : case 0x07ul: 9644 : : return true; 9645 : : default: 9646 : : return true; 9647 : : } 9648 : : } 9649 : : #endif 9650 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9651 : : if (var1 == 0x08) 9652 : : { 9653 : : switch(var2) 9654 : : { 9655 : : case 0x00ul: 9656 : : return true; 9657 : : case 0x01ul: 9658 : : return true; 9659 : : case 0x02ul: 9660 : : return true; 9661 : : case 0x03ul: 9662 : : return false; 9663 : : case 0x04ul: 9664 : : return false; 9665 : : case 0x05ul: 9666 : : return false; 9667 : : default: 9668 : : return false; 9669 : : } 9670 : : } 9671 : : #endif 9672 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 9673 : : if (var1 == 0x0A) 9674 : : { 9675 : : switch(var2) 9676 : : { 9677 : : case 0x00ul: 9678 : : return true; 9679 : : case 0x01ul: 9680 : : return false; 9681 : : case 0x02ul: 9682 : : return false; 9683 : : default: 9684 : : return false; 9685 : : } 9686 : : } 9687 : : #endif 9688 : : return false; 9689 : : #endif 9690 : : } 9691 : : 9692 : : /* ========= Errata 193 ========= */ 9693 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9694 : : #define NRF52_ERRATA_193_PRESENT 1 9695 : : #else 9696 : : #define NRF52_ERRATA_193_PRESENT 0 9697 : : #endif 9698 : : 9699 : : #ifndef NRF52_ERRATA_193_ENABLE_WORKAROUND 9700 : : #define NRF52_ERRATA_193_ENABLE_WORKAROUND NRF52_ERRATA_193_PRESENT 9701 : : #endif 9702 : : 9703 : 0 : static bool nrf52_errata_193(void) 9704 : : { 9705 : : #ifndef NRF52_SERIES 9706 : 0 : return false; 9707 : : #else 9708 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9709 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 9710 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 9711 : : #endif 9712 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9713 : : if (var1 == 0x08) 9714 : : { 9715 : : switch(var2) 9716 : : { 9717 : : case 0x00ul: 9718 : : return false; 9719 : : case 0x01ul: 9720 : : return true; 9721 : : case 0x02ul: 9722 : : return true; 9723 : : case 0x03ul: 9724 : : return true; 9725 : : case 0x04ul: 9726 : : return true; 9727 : : case 0x05ul: 9728 : : return true; 9729 : : default: 9730 : : return true; 9731 : : } 9732 : : } 9733 : : #endif 9734 : : return false; 9735 : : #endif 9736 : : } 9737 : : 9738 : : /* ========= Errata 194 ========= */ 9739 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 9740 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 9741 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 9742 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 9743 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9744 : : #define NRF52_ERRATA_194_PRESENT 1 9745 : : #else 9746 : : #define NRF52_ERRATA_194_PRESENT 0 9747 : : #endif 9748 : : 9749 : : #ifndef NRF52_ERRATA_194_ENABLE_WORKAROUND 9750 : : #define NRF52_ERRATA_194_ENABLE_WORKAROUND NRF52_ERRATA_194_PRESENT 9751 : : #endif 9752 : : 9753 : 0 : static bool nrf52_errata_194(void) 9754 : : { 9755 : : #ifndef NRF52_SERIES 9756 : 0 : return false; 9757 : : #else 9758 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 9759 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 9760 : : uint32_t var1; 9761 : : uint32_t var2; 9762 : : 9763 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 9764 : : { 9765 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 9766 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 9767 : : } 9768 : : else 9769 : : { 9770 : : var1 = *(uint32_t *)0x10000130ul; 9771 : : var2 = *(uint32_t *)0x10000134ul; 9772 : : } 9773 : : #elif defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 9774 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 9775 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9776 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 9777 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 9778 : : #endif 9779 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 9780 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 9781 : : if (var1 == 0x06) 9782 : : { 9783 : : switch(var2) 9784 : : { 9785 : : case 0x03ul: 9786 : : return false; 9787 : : case 0x04ul: 9788 : : return false; 9789 : : case 0x05ul: 9790 : : return true; 9791 : : case 0x06ul: 9792 : : return true; 9793 : : case 0x07ul: 9794 : : return true; 9795 : : default: 9796 : : return true; 9797 : : } 9798 : : } 9799 : : #endif 9800 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9801 : : if (var1 == 0x08) 9802 : : { 9803 : : switch(var2) 9804 : : { 9805 : : case 0x00ul: 9806 : : return true; 9807 : : case 0x01ul: 9808 : : return true; 9809 : : case 0x02ul: 9810 : : return true; 9811 : : case 0x03ul: 9812 : : return true; 9813 : : case 0x04ul: 9814 : : return true; 9815 : : case 0x05ul: 9816 : : return true; 9817 : : default: 9818 : : return true; 9819 : : } 9820 : : } 9821 : : #endif 9822 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 9823 : : if (var1 == 0x0D) 9824 : : { 9825 : : switch(var2) 9826 : : { 9827 : : case 0x00ul: 9828 : : return true; 9829 : : case 0x01ul: 9830 : : return true; 9831 : : default: 9832 : : return true; 9833 : : } 9834 : : } 9835 : : #endif 9836 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 9837 : : if (var1 == 0x10) 9838 : : { 9839 : : switch(var2) 9840 : : { 9841 : : case 0x00ul: 9842 : : return true; 9843 : : case 0x01ul: 9844 : : return true; 9845 : : case 0x02ul: 9846 : : return false; 9847 : : case 0x03ul: 9848 : : return false; 9849 : : default: 9850 : : return false; 9851 : : } 9852 : : } 9853 : : #endif 9854 : : return false; 9855 : : #endif 9856 : : } 9857 : : 9858 : : /* ========= Errata 195 ========= */ 9859 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9860 : : #define NRF52_ERRATA_195_PRESENT 1 9861 : : #else 9862 : : #define NRF52_ERRATA_195_PRESENT 0 9863 : : #endif 9864 : : 9865 : : #ifndef NRF52_ERRATA_195_ENABLE_WORKAROUND 9866 : : #define NRF52_ERRATA_195_ENABLE_WORKAROUND NRF52_ERRATA_195_PRESENT 9867 : : #endif 9868 : : 9869 : 0 : static bool nrf52_errata_195(void) 9870 : : { 9871 : : #ifndef NRF52_SERIES 9872 : 0 : return false; 9873 : : #else 9874 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9875 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 9876 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 9877 : : #endif 9878 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9879 : : if (var1 == 0x08) 9880 : : { 9881 : : switch(var2) 9882 : : { 9883 : : case 0x00ul: 9884 : : return false; 9885 : : case 0x01ul: 9886 : : return true; 9887 : : case 0x02ul: 9888 : : return true; 9889 : : case 0x03ul: 9890 : : return true; 9891 : : case 0x04ul: 9892 : : return true; 9893 : : case 0x05ul: 9894 : : return true; 9895 : : default: 9896 : : return true; 9897 : : } 9898 : : } 9899 : : #endif 9900 : : return false; 9901 : : #endif 9902 : : } 9903 : : 9904 : : /* ========= Errata 196 ========= */ 9905 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 9906 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 9907 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 9908 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 9909 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9910 : : #define NRF52_ERRATA_196_PRESENT 1 9911 : : #else 9912 : : #define NRF52_ERRATA_196_PRESENT 0 9913 : : #endif 9914 : : 9915 : : #ifndef NRF52_ERRATA_196_ENABLE_WORKAROUND 9916 : : #define NRF52_ERRATA_196_ENABLE_WORKAROUND NRF52_ERRATA_196_PRESENT 9917 : : #endif 9918 : : 9919 : 0 : static bool nrf52_errata_196(void) 9920 : : { 9921 : : #ifndef NRF52_SERIES 9922 : 0 : return false; 9923 : : #else 9924 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 9925 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 9926 : : uint32_t var1; 9927 : : uint32_t var2; 9928 : : 9929 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 9930 : : { 9931 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 9932 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 9933 : : } 9934 : : else 9935 : : { 9936 : : var1 = *(uint32_t *)0x10000130ul; 9937 : : var2 = *(uint32_t *)0x10000134ul; 9938 : : } 9939 : : #elif defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 9940 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 9941 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9942 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 9943 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 9944 : : #endif 9945 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 9946 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 9947 : : if (var1 == 0x06) 9948 : : { 9949 : : switch(var2) 9950 : : { 9951 : : case 0x03ul: 9952 : : return false; 9953 : : case 0x04ul: 9954 : : return false; 9955 : : case 0x05ul: 9956 : : return true; 9957 : : case 0x06ul: 9958 : : return true; 9959 : : case 0x07ul: 9960 : : return true; 9961 : : default: 9962 : : return true; 9963 : : } 9964 : : } 9965 : : #endif 9966 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 9967 : : if (var1 == 0x08) 9968 : : { 9969 : : switch(var2) 9970 : : { 9971 : : case 0x00ul: 9972 : : return true; 9973 : : case 0x01ul: 9974 : : return true; 9975 : : case 0x02ul: 9976 : : return true; 9977 : : case 0x03ul: 9978 : : return true; 9979 : : case 0x04ul: 9980 : : return true; 9981 : : case 0x05ul: 9982 : : return true; 9983 : : default: 9984 : : return true; 9985 : : } 9986 : : } 9987 : : #endif 9988 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 9989 : : if (var1 == 0x0D) 9990 : : { 9991 : : switch(var2) 9992 : : { 9993 : : case 0x00ul: 9994 : : return true; 9995 : : case 0x01ul: 9996 : : return true; 9997 : : default: 9998 : : return true; 9999 : : } 10000 : : } 10001 : : #endif 10002 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 10003 : : if (var1 == 0x10) 10004 : : { 10005 : : switch(var2) 10006 : : { 10007 : : case 0x00ul: 10008 : : return true; 10009 : : case 0x01ul: 10010 : : return true; 10011 : : case 0x02ul: 10012 : : return false; 10013 : : case 0x03ul: 10014 : : return false; 10015 : : default: 10016 : : return false; 10017 : : } 10018 : : } 10019 : : #endif 10020 : : return false; 10021 : : #endif 10022 : : } 10023 : : 10024 : : /* ========= Errata 197 ========= */ 10025 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10026 : : #define NRF52_ERRATA_197_PRESENT 1 10027 : : #else 10028 : : #define NRF52_ERRATA_197_PRESENT 0 10029 : : #endif 10030 : : 10031 : : #ifndef NRF52_ERRATA_197_ENABLE_WORKAROUND 10032 : : #define NRF52_ERRATA_197_ENABLE_WORKAROUND NRF52_ERRATA_197_PRESENT 10033 : : #endif 10034 : : 10035 : 0 : static bool nrf52_errata_197(void) 10036 : : { 10037 : : #ifndef NRF52_SERIES 10038 : 0 : return false; 10039 : : #else 10040 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10041 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 10042 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 10043 : : #endif 10044 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10045 : : if (var1 == 0x08) 10046 : : { 10047 : : switch(var2) 10048 : : { 10049 : : case 0x00ul: 10050 : : return false; 10051 : : case 0x01ul: 10052 : : return false; 10053 : : case 0x02ul: 10054 : : return true; 10055 : : case 0x03ul: 10056 : : return false; 10057 : : case 0x04ul: 10058 : : return false; 10059 : : case 0x05ul: 10060 : : return false; 10061 : : default: 10062 : : return false; 10063 : : } 10064 : : } 10065 : : #endif 10066 : : return false; 10067 : : #endif 10068 : : } 10069 : : 10070 : : /* ========= Errata 198 ========= */ 10071 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10072 : : #define NRF52_ERRATA_198_PRESENT 1 10073 : : #else 10074 : : #define NRF52_ERRATA_198_PRESENT 0 10075 : : #endif 10076 : : 10077 : : #ifndef NRF52_ERRATA_198_ENABLE_WORKAROUND 10078 : : #define NRF52_ERRATA_198_ENABLE_WORKAROUND NRF52_ERRATA_198_PRESENT 10079 : : #endif 10080 : : 10081 : 0 : static bool nrf52_errata_198(void) 10082 : : { 10083 : : #ifndef NRF52_SERIES 10084 : 0 : return false; 10085 : : #else 10086 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10087 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 10088 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 10089 : : #endif 10090 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10091 : : if (var1 == 0x08) 10092 : : { 10093 : : switch(var2) 10094 : : { 10095 : : case 0x00ul: 10096 : : return false; 10097 : : case 0x01ul: 10098 : : return true; 10099 : : case 0x02ul: 10100 : : return true; 10101 : : case 0x03ul: 10102 : : return true; 10103 : : case 0x04ul: 10104 : : return true; 10105 : : case 0x05ul: 10106 : : return true; 10107 : : default: 10108 : : return true; 10109 : : } 10110 : : } 10111 : : #endif 10112 : : return false; 10113 : : #endif 10114 : : } 10115 : : 10116 : : /* ========= Errata 199 ========= */ 10117 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10118 : : #define NRF52_ERRATA_199_PRESENT 1 10119 : : #else 10120 : : #define NRF52_ERRATA_199_PRESENT 0 10121 : : #endif 10122 : : 10123 : : #ifndef NRF52_ERRATA_199_ENABLE_WORKAROUND 10124 : : #define NRF52_ERRATA_199_ENABLE_WORKAROUND NRF52_ERRATA_199_PRESENT 10125 : : #endif 10126 : : 10127 : 0 : static bool nrf52_errata_199(void) 10128 : : { 10129 : : #ifndef NRF52_SERIES 10130 : 0 : return false; 10131 : : #else 10132 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10133 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 10134 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 10135 : : #endif 10136 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10137 : : if (var1 == 0x08) 10138 : : { 10139 : : switch(var2) 10140 : : { 10141 : : case 0x00ul: 10142 : : return true; 10143 : : case 0x01ul: 10144 : : return true; 10145 : : case 0x02ul: 10146 : : return true; 10147 : : case 0x03ul: 10148 : : return true; 10149 : : case 0x04ul: 10150 : : return true; 10151 : : case 0x05ul: 10152 : : return true; 10153 : : default: 10154 : : return true; 10155 : : } 10156 : : } 10157 : : #endif 10158 : : return false; 10159 : : #endif 10160 : : } 10161 : : 10162 : : /* ========= Errata 200 ========= */ 10163 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10164 : : #define NRF52_ERRATA_200_PRESENT 1 10165 : : #else 10166 : : #define NRF52_ERRATA_200_PRESENT 0 10167 : : #endif 10168 : : 10169 : : #ifndef NRF52_ERRATA_200_ENABLE_WORKAROUND 10170 : : #define NRF52_ERRATA_200_ENABLE_WORKAROUND NRF52_ERRATA_200_PRESENT 10171 : : #endif 10172 : : 10173 : 0 : static bool nrf52_errata_200(void) 10174 : : { 10175 : : #ifndef NRF52_SERIES 10176 : 0 : return false; 10177 : : #else 10178 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10179 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 10180 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 10181 : : #endif 10182 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10183 : : if (var1 == 0x08) 10184 : : { 10185 : : switch(var2) 10186 : : { 10187 : : case 0x00ul: 10188 : : return true; 10189 : : case 0x01ul: 10190 : : return false; 10191 : : case 0x02ul: 10192 : : return false; 10193 : : case 0x03ul: 10194 : : return false; 10195 : : case 0x04ul: 10196 : : return false; 10197 : : case 0x05ul: 10198 : : return false; 10199 : : default: 10200 : : return false; 10201 : : } 10202 : : } 10203 : : #endif 10204 : : return false; 10205 : : #endif 10206 : : } 10207 : : 10208 : : /* ========= Errata 201 ========= */ 10209 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 10210 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 10211 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 10212 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10213 : : #define NRF52_ERRATA_201_PRESENT 1 10214 : : #else 10215 : : #define NRF52_ERRATA_201_PRESENT 0 10216 : : #endif 10217 : : 10218 : : #ifndef NRF52_ERRATA_201_ENABLE_WORKAROUND 10219 : : #define NRF52_ERRATA_201_ENABLE_WORKAROUND NRF52_ERRATA_201_PRESENT 10220 : : #endif 10221 : : 10222 : 0 : static bool nrf52_errata_201(void) 10223 : : { 10224 : : #ifndef NRF52_SERIES 10225 : 0 : return false; 10226 : : #else 10227 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 10228 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 10229 : : uint32_t var1; 10230 : : uint32_t var2; 10231 : : 10232 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 10233 : : { 10234 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 10235 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 10236 : : } 10237 : : else 10238 : : { 10239 : : var1 = *(uint32_t *)0x10000130ul; 10240 : : var2 = *(uint32_t *)0x10000134ul; 10241 : : } 10242 : : #elif defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 10243 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10244 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 10245 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 10246 : : #endif 10247 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 10248 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 10249 : : if (var1 == 0x06) 10250 : : { 10251 : : switch(var2) 10252 : : { 10253 : : case 0x03ul: 10254 : : return false; 10255 : : case 0x04ul: 10256 : : return false; 10257 : : case 0x05ul: 10258 : : return true; 10259 : : case 0x06ul: 10260 : : return true; 10261 : : case 0x07ul: 10262 : : return true; 10263 : : default: 10264 : : return true; 10265 : : } 10266 : : } 10267 : : #endif 10268 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10269 : : if (var1 == 0x08) 10270 : : { 10271 : : switch(var2) 10272 : : { 10273 : : case 0x00ul: 10274 : : return true; 10275 : : case 0x01ul: 10276 : : return true; 10277 : : case 0x02ul: 10278 : : return true; 10279 : : case 0x03ul: 10280 : : return false; 10281 : : case 0x04ul: 10282 : : return false; 10283 : : case 0x05ul: 10284 : : return false; 10285 : : default: 10286 : : return false; 10287 : : } 10288 : : } 10289 : : #endif 10290 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 10291 : : if (var1 == 0x0A) 10292 : : { 10293 : : switch(var2) 10294 : : { 10295 : : case 0x00ul: 10296 : : return true; 10297 : : case 0x01ul: 10298 : : return false; 10299 : : case 0x02ul: 10300 : : return false; 10301 : : default: 10302 : : return false; 10303 : : } 10304 : : } 10305 : : #endif 10306 : : return false; 10307 : : #endif 10308 : : } 10309 : : 10310 : : /* ========= Errata 202 ========= */ 10311 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10312 : : #define NRF52_ERRATA_202_PRESENT 1 10313 : : #else 10314 : : #define NRF52_ERRATA_202_PRESENT 0 10315 : : #endif 10316 : : 10317 : : #ifndef NRF52_ERRATA_202_ENABLE_WORKAROUND 10318 : : #define NRF52_ERRATA_202_ENABLE_WORKAROUND NRF52_ERRATA_202_PRESENT 10319 : : #endif 10320 : : 10321 : 0 : static bool nrf52_errata_202(void) 10322 : : { 10323 : : #ifndef NRF52_SERIES 10324 : 0 : return false; 10325 : : #else 10326 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10327 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 10328 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 10329 : : #endif 10330 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10331 : : if (var1 == 0x08) 10332 : : { 10333 : : switch(var2) 10334 : : { 10335 : : case 0x00ul: 10336 : : return false; 10337 : : case 0x01ul: 10338 : : return true; 10339 : : case 0x02ul: 10340 : : return true; 10341 : : case 0x03ul: 10342 : : return false; 10343 : : case 0x04ul: 10344 : : return false; 10345 : : case 0x05ul: 10346 : : return false; 10347 : : default: 10348 : : return false; 10349 : : } 10350 : : } 10351 : : #endif 10352 : : return false; 10353 : : #endif 10354 : : } 10355 : : 10356 : : /* ========= Errata 204 ========= */ 10357 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 10358 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 10359 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 10360 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10361 : : #define NRF52_ERRATA_204_PRESENT 1 10362 : : #else 10363 : : #define NRF52_ERRATA_204_PRESENT 0 10364 : : #endif 10365 : : 10366 : : #ifndef NRF52_ERRATA_204_ENABLE_WORKAROUND 10367 : : #define NRF52_ERRATA_204_ENABLE_WORKAROUND NRF52_ERRATA_204_PRESENT 10368 : : #endif 10369 : : 10370 : 0 : static bool nrf52_errata_204(void) 10371 : : { 10372 : : #ifndef NRF52_SERIES 10373 : 0 : return false; 10374 : : #else 10375 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 10376 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 10377 : : uint32_t var1; 10378 : : uint32_t var2; 10379 : : 10380 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 10381 : : { 10382 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 10383 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 10384 : : } 10385 : : else 10386 : : { 10387 : : var1 = *(uint32_t *)0x10000130ul; 10388 : : var2 = *(uint32_t *)0x10000134ul; 10389 : : } 10390 : : #elif defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 10391 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10392 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 10393 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 10394 : : #endif 10395 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 10396 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 10397 : : if (var1 == 0x06) 10398 : : { 10399 : : switch(var2) 10400 : : { 10401 : : case 0x03ul: 10402 : : return false; 10403 : : case 0x04ul: 10404 : : return false; 10405 : : case 0x05ul: 10406 : : return true; 10407 : : case 0x06ul: 10408 : : return true; 10409 : : case 0x07ul: 10410 : : return true; 10411 : : default: 10412 : : return true; 10413 : : } 10414 : : } 10415 : : #endif 10416 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10417 : : if (var1 == 0x08) 10418 : : { 10419 : : switch(var2) 10420 : : { 10421 : : case 0x00ul: 10422 : : return true; 10423 : : case 0x01ul: 10424 : : return true; 10425 : : case 0x02ul: 10426 : : return true; 10427 : : case 0x03ul: 10428 : : return true; 10429 : : case 0x04ul: 10430 : : return true; 10431 : : case 0x05ul: 10432 : : return true; 10433 : : default: 10434 : : return true; 10435 : : } 10436 : : } 10437 : : #endif 10438 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 10439 : : if (var1 == 0x0A) 10440 : : { 10441 : : switch(var2) 10442 : : { 10443 : : case 0x00ul: 10444 : : return true; 10445 : : case 0x01ul: 10446 : : return true; 10447 : : case 0x02ul: 10448 : : return true; 10449 : : default: 10450 : : return true; 10451 : : } 10452 : : } 10453 : : #endif 10454 : : return false; 10455 : : #endif 10456 : : } 10457 : : 10458 : : /* ========= Errata 208 ========= */ 10459 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10460 : : #define NRF52_ERRATA_208_PRESENT 1 10461 : : #else 10462 : : #define NRF52_ERRATA_208_PRESENT 0 10463 : : #endif 10464 : : 10465 : : #ifndef NRF52_ERRATA_208_ENABLE_WORKAROUND 10466 : : #define NRF52_ERRATA_208_ENABLE_WORKAROUND NRF52_ERRATA_208_PRESENT 10467 : : #endif 10468 : : 10469 : 0 : static bool nrf52_errata_208(void) 10470 : : { 10471 : : #ifndef NRF52_SERIES 10472 : 0 : return false; 10473 : : #else 10474 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10475 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 10476 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 10477 : : #endif 10478 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10479 : : if (var1 == 0x08) 10480 : : { 10481 : : switch(var2) 10482 : : { 10483 : : case 0x00ul: 10484 : : return true; 10485 : : case 0x01ul: 10486 : : return true; 10487 : : case 0x02ul: 10488 : : return true; 10489 : : case 0x03ul: 10490 : : return true; 10491 : : case 0x04ul: 10492 : : return true; 10493 : : case 0x05ul: 10494 : : return true; 10495 : : default: 10496 : : return true; 10497 : : } 10498 : : } 10499 : : #endif 10500 : : return false; 10501 : : #endif 10502 : : } 10503 : : 10504 : : /* ========= Errata 209 ========= */ 10505 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10506 : : #define NRF52_ERRATA_209_PRESENT 1 10507 : : #else 10508 : : #define NRF52_ERRATA_209_PRESENT 0 10509 : : #endif 10510 : : 10511 : : #ifndef NRF52_ERRATA_209_ENABLE_WORKAROUND 10512 : : #define NRF52_ERRATA_209_ENABLE_WORKAROUND NRF52_ERRATA_209_PRESENT 10513 : : #endif 10514 : : 10515 : 0 : static bool nrf52_errata_209(void) 10516 : : { 10517 : : #ifndef NRF52_SERIES 10518 : 0 : return false; 10519 : : #else 10520 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10521 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 10522 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 10523 : : #endif 10524 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10525 : : if (var1 == 0x08) 10526 : : { 10527 : : switch(var2) 10528 : : { 10529 : : case 0x00ul: 10530 : : return true; 10531 : : case 0x01ul: 10532 : : return true; 10533 : : case 0x02ul: 10534 : : return true; 10535 : : case 0x03ul: 10536 : : return true; 10537 : : case 0x04ul: 10538 : : return true; 10539 : : case 0x05ul: 10540 : : return true; 10541 : : default: 10542 : : return true; 10543 : : } 10544 : : } 10545 : : #endif 10546 : : return false; 10547 : : #endif 10548 : : } 10549 : : 10550 : : /* ========= Errata 210 ========= */ 10551 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 10552 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 10553 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 10554 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 10555 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 10556 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 10557 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 10558 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10559 : : #define NRF52_ERRATA_210_PRESENT 1 10560 : : #else 10561 : : #define NRF52_ERRATA_210_PRESENT 0 10562 : : #endif 10563 : : 10564 : : #ifndef NRF52_ERRATA_210_ENABLE_WORKAROUND 10565 : : #define NRF52_ERRATA_210_ENABLE_WORKAROUND NRF52_ERRATA_210_PRESENT 10566 : : #endif 10567 : : 10568 : 0 : static bool nrf52_errata_210(void) 10569 : : { 10570 : : #ifndef NRF52_SERIES 10571 : 0 : return false; 10572 : : #else 10573 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 10574 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 10575 : : uint32_t var1; 10576 : : uint32_t var2; 10577 : : 10578 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 10579 : : { 10580 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 10581 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 10582 : : } 10583 : : else 10584 : : { 10585 : : var1 = *(uint32_t *)0x10000130ul; 10586 : : var2 = *(uint32_t *)0x10000134ul; 10587 : : } 10588 : : #elif defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 10589 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 10590 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 10591 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 10592 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 10593 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10594 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 10595 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 10596 : : #endif 10597 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 10598 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 10599 : : if (var1 == 0x06) 10600 : : { 10601 : : switch(var2) 10602 : : { 10603 : : case 0x03ul: 10604 : : return false; 10605 : : case 0x04ul: 10606 : : return false; 10607 : : case 0x05ul: 10608 : : return true; 10609 : : case 0x06ul: 10610 : : return true; 10611 : : case 0x07ul: 10612 : : return true; 10613 : : default: 10614 : : return true; 10615 : : } 10616 : : } 10617 : : #endif 10618 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10619 : : if (var1 == 0x08) 10620 : : { 10621 : : switch(var2) 10622 : : { 10623 : : case 0x00ul: 10624 : : return false; 10625 : : case 0x01ul: 10626 : : return false; 10627 : : case 0x02ul: 10628 : : return true; 10629 : : case 0x03ul: 10630 : : return true; 10631 : : case 0x04ul: 10632 : : return true; 10633 : : case 0x05ul: 10634 : : return true; 10635 : : default: 10636 : : return true; 10637 : : } 10638 : : } 10639 : : #endif 10640 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 10641 : : if (var1 == 0x0A) 10642 : : { 10643 : : switch(var2) 10644 : : { 10645 : : case 0x00ul: 10646 : : return true; 10647 : : case 0x01ul: 10648 : : return true; 10649 : : case 0x02ul: 10650 : : return true; 10651 : : default: 10652 : : return true; 10653 : : } 10654 : : } 10655 : : #endif 10656 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 10657 : : if (var1 == 0x0D) 10658 : : { 10659 : : switch(var2) 10660 : : { 10661 : : case 0x00ul: 10662 : : return true; 10663 : : case 0x01ul: 10664 : : return true; 10665 : : default: 10666 : : return true; 10667 : : } 10668 : : } 10669 : : #endif 10670 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 10671 : : if (var1 == 0x0E) 10672 : : { 10673 : : switch(var2) 10674 : : { 10675 : : case 0x00ul: 10676 : : return true; 10677 : : case 0x01ul: 10678 : : return true; 10679 : : default: 10680 : : return true; 10681 : : } 10682 : : } 10683 : : #endif 10684 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 10685 : : if (var1 == 0x0F) 10686 : : { 10687 : : switch(var2) 10688 : : { 10689 : : case 0x00ul: 10690 : : return true; 10691 : : case 0x01ul: 10692 : : return true; 10693 : : default: 10694 : : return true; 10695 : : } 10696 : : } 10697 : : #endif 10698 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 10699 : : if (var1 == 0x10) 10700 : : { 10701 : : switch(var2) 10702 : : { 10703 : : case 0x00ul: 10704 : : return true; 10705 : : case 0x01ul: 10706 : : return true; 10707 : : case 0x02ul: 10708 : : return true; 10709 : : case 0x03ul: 10710 : : return true; 10711 : : default: 10712 : : return true; 10713 : : } 10714 : : } 10715 : : #endif 10716 : : return false; 10717 : : #endif 10718 : : } 10719 : : 10720 : : /* ========= Errata 211 ========= */ 10721 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 10722 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 10723 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10724 : : #define NRF52_ERRATA_211_PRESENT 1 10725 : : #else 10726 : : #define NRF52_ERRATA_211_PRESENT 0 10727 : : #endif 10728 : : 10729 : : #ifndef NRF52_ERRATA_211_ENABLE_WORKAROUND 10730 : : #define NRF52_ERRATA_211_ENABLE_WORKAROUND 0 10731 : : #endif 10732 : : 10733 : 0 : static bool nrf52_errata_211(void) 10734 : : { 10735 : : #ifndef NRF52_SERIES 10736 : 0 : return false; 10737 : : #else 10738 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 10739 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 10740 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10741 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 10742 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 10743 : : #endif 10744 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10745 : : if (var1 == 0x08) 10746 : : { 10747 : : switch(var2) 10748 : : { 10749 : : case 0x00ul: 10750 : : return false; 10751 : : case 0x01ul: 10752 : : return true; 10753 : : case 0x02ul: 10754 : : return true; 10755 : : case 0x03ul: 10756 : : return true; 10757 : : case 0x04ul: 10758 : : return true; 10759 : : case 0x05ul: 10760 : : return true; 10761 : : default: 10762 : : return true; 10763 : : } 10764 : : } 10765 : : #endif 10766 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 10767 : : if (var1 == 0x0D) 10768 : : { 10769 : : switch(var2) 10770 : : { 10771 : : case 0x00ul: 10772 : : return true; 10773 : : case 0x01ul: 10774 : : return true; 10775 : : default: 10776 : : return true; 10777 : : } 10778 : : } 10779 : : #endif 10780 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 10781 : : if (var1 == 0x10) 10782 : : { 10783 : : switch(var2) 10784 : : { 10785 : : case 0x00ul: 10786 : : return true; 10787 : : case 0x01ul: 10788 : : return true; 10789 : : case 0x02ul: 10790 : : return true; 10791 : : case 0x03ul: 10792 : : return true; 10793 : : default: 10794 : : return true; 10795 : : } 10796 : : } 10797 : : #endif 10798 : : return false; 10799 : : #endif 10800 : : } 10801 : : 10802 : : /* ========= Errata 212 ========= */ 10803 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 10804 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 10805 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 10806 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 10807 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 10808 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 10809 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 10810 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10811 : : #define NRF52_ERRATA_212_PRESENT 1 10812 : : #else 10813 : : #define NRF52_ERRATA_212_PRESENT 0 10814 : : #endif 10815 : : 10816 : : #ifndef NRF52_ERRATA_212_ENABLE_WORKAROUND 10817 : : #define NRF52_ERRATA_212_ENABLE_WORKAROUND NRF52_ERRATA_212_PRESENT 10818 : : #endif 10819 : : 10820 : 0 : static bool nrf52_errata_212(void) 10821 : : { 10822 : : #ifndef NRF52_SERIES 10823 : 0 : return false; 10824 : : #else 10825 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 10826 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 10827 : : uint32_t var1; 10828 : : uint32_t var2; 10829 : : 10830 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 10831 : : { 10832 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 10833 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 10834 : : } 10835 : : else 10836 : : { 10837 : : var1 = *(uint32_t *)0x10000130ul; 10838 : : var2 = *(uint32_t *)0x10000134ul; 10839 : : } 10840 : : #elif defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 10841 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 10842 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 10843 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 10844 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 10845 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10846 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 10847 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 10848 : : #endif 10849 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 10850 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 10851 : : if (var1 == 0x06) 10852 : : { 10853 : : switch(var2) 10854 : : { 10855 : : case 0x03ul: 10856 : : return false; 10857 : : case 0x04ul: 10858 : : return false; 10859 : : case 0x05ul: 10860 : : return true; 10861 : : case 0x06ul: 10862 : : return true; 10863 : : case 0x07ul: 10864 : : return true; 10865 : : default: 10866 : : return true; 10867 : : } 10868 : : } 10869 : : #endif 10870 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10871 : : if (var1 == 0x08) 10872 : : { 10873 : : switch(var2) 10874 : : { 10875 : : case 0x00ul: 10876 : : return true; 10877 : : case 0x01ul: 10878 : : return false; 10879 : : case 0x02ul: 10880 : : return true; 10881 : : case 0x03ul: 10882 : : return true; 10883 : : case 0x04ul: 10884 : : return true; 10885 : : case 0x05ul: 10886 : : return true; 10887 : : default: 10888 : : return true; 10889 : : } 10890 : : } 10891 : : #endif 10892 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 10893 : : if (var1 == 0x0A) 10894 : : { 10895 : : switch(var2) 10896 : : { 10897 : : case 0x00ul: 10898 : : return true; 10899 : : case 0x01ul: 10900 : : return true; 10901 : : case 0x02ul: 10902 : : return true; 10903 : : default: 10904 : : return true; 10905 : : } 10906 : : } 10907 : : #endif 10908 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 10909 : : if (var1 == 0x0D) 10910 : : { 10911 : : switch(var2) 10912 : : { 10913 : : case 0x00ul: 10914 : : return true; 10915 : : case 0x01ul: 10916 : : return true; 10917 : : default: 10918 : : return true; 10919 : : } 10920 : : } 10921 : : #endif 10922 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 10923 : : if (var1 == 0x0E) 10924 : : { 10925 : : switch(var2) 10926 : : { 10927 : : case 0x00ul: 10928 : : return true; 10929 : : case 0x01ul: 10930 : : return true; 10931 : : default: 10932 : : return true; 10933 : : } 10934 : : } 10935 : : #endif 10936 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 10937 : : if (var1 == 0x0F) 10938 : : { 10939 : : switch(var2) 10940 : : { 10941 : : case 0x00ul: 10942 : : return true; 10943 : : case 0x01ul: 10944 : : return true; 10945 : : default: 10946 : : return true; 10947 : : } 10948 : : } 10949 : : #endif 10950 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 10951 : : if (var1 == 0x10) 10952 : : { 10953 : : switch(var2) 10954 : : { 10955 : : case 0x00ul: 10956 : : return true; 10957 : : case 0x01ul: 10958 : : return true; 10959 : : case 0x02ul: 10960 : : return false; 10961 : : case 0x03ul: 10962 : : return false; 10963 : : default: 10964 : : return false; 10965 : : } 10966 : : } 10967 : : #endif 10968 : : return false; 10969 : : #endif 10970 : : } 10971 : : 10972 : : /* ========= Errata 213 ========= */ 10973 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 10974 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 10975 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 10976 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 10977 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 10978 : : #define NRF52_ERRATA_213_PRESENT 1 10979 : : #else 10980 : : #define NRF52_ERRATA_213_PRESENT 0 10981 : : #endif 10982 : : 10983 : : #ifndef NRF52_ERRATA_213_ENABLE_WORKAROUND 10984 : : #define NRF52_ERRATA_213_ENABLE_WORKAROUND NRF52_ERRATA_213_PRESENT 10985 : : #endif 10986 : : 10987 : 0 : static bool nrf52_errata_213(void) 10988 : : { 10989 : : #ifndef NRF52_SERIES 10990 : 0 : return false; 10991 : : #else 10992 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 10993 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 10994 : : uint32_t var1; 10995 : : uint32_t var2; 10996 : : 10997 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 10998 : : { 10999 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 11000 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 11001 : : } 11002 : : else 11003 : : { 11004 : : var1 = *(uint32_t *)0x10000130ul; 11005 : : var2 = *(uint32_t *)0x10000134ul; 11006 : : } 11007 : : #elif defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 11008 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 11009 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 11010 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 11011 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 11012 : : #endif 11013 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 11014 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 11015 : : if (var1 == 0x06) 11016 : : { 11017 : : switch(var2) 11018 : : { 11019 : : case 0x03ul: 11020 : : return true; 11021 : : case 0x04ul: 11022 : : return true; 11023 : : case 0x05ul: 11024 : : return true; 11025 : : case 0x06ul: 11026 : : return true; 11027 : : case 0x07ul: 11028 : : return true; 11029 : : default: 11030 : : return true; 11031 : : } 11032 : : } 11033 : : #endif 11034 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 11035 : : if (var1 == 0x08) 11036 : : { 11037 : : switch(var2) 11038 : : { 11039 : : case 0x00ul: 11040 : : return true; 11041 : : case 0x01ul: 11042 : : return true; 11043 : : case 0x02ul: 11044 : : return true; 11045 : : case 0x03ul: 11046 : : return true; 11047 : : case 0x04ul: 11048 : : return true; 11049 : : case 0x05ul: 11050 : : return true; 11051 : : default: 11052 : : return true; 11053 : : } 11054 : : } 11055 : : #endif 11056 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 11057 : : if (var1 == 0x0A) 11058 : : { 11059 : : switch(var2) 11060 : : { 11061 : : case 0x00ul: 11062 : : return true; 11063 : : case 0x01ul: 11064 : : return true; 11065 : : case 0x02ul: 11066 : : return true; 11067 : : default: 11068 : : return true; 11069 : : } 11070 : : } 11071 : : #endif 11072 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 11073 : : if (var1 == 0x0E) 11074 : : { 11075 : : switch(var2) 11076 : : { 11077 : : case 0x00ul: 11078 : : return true; 11079 : : case 0x01ul: 11080 : : return true; 11081 : : default: 11082 : : return true; 11083 : : } 11084 : : } 11085 : : #endif 11086 : : return false; 11087 : : #endif 11088 : : } 11089 : : 11090 : : /* ========= Errata 214 ========= */ 11091 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 11092 : : #define NRF52_ERRATA_214_PRESENT 1 11093 : : #else 11094 : : #define NRF52_ERRATA_214_PRESENT 0 11095 : : #endif 11096 : : 11097 : : #ifndef NRF52_ERRATA_214_ENABLE_WORKAROUND 11098 : : #define NRF52_ERRATA_214_ENABLE_WORKAROUND NRF52_ERRATA_214_PRESENT 11099 : : #endif 11100 : : 11101 : 0 : static bool nrf52_errata_214(void) 11102 : : { 11103 : : #ifndef NRF52_SERIES 11104 : 0 : return false; 11105 : : #else 11106 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 11107 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 11108 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 11109 : : #endif 11110 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 11111 : : if (var1 == 0x08) 11112 : : { 11113 : : switch(var2) 11114 : : { 11115 : : case 0x00ul: 11116 : : return true; 11117 : : case 0x01ul: 11118 : : return true; 11119 : : case 0x02ul: 11120 : : return true; 11121 : : case 0x03ul: 11122 : : return true; 11123 : : case 0x04ul: 11124 : : return true; 11125 : : case 0x05ul: 11126 : : return true; 11127 : : default: 11128 : : return true; 11129 : : } 11130 : : } 11131 : : #endif 11132 : : return false; 11133 : : #endif 11134 : : } 11135 : : 11136 : : /* ========= Errata 215 ========= */ 11137 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 11138 : : #define NRF52_ERRATA_215_PRESENT 1 11139 : : #else 11140 : : #define NRF52_ERRATA_215_PRESENT 0 11141 : : #endif 11142 : : 11143 : : #ifndef NRF52_ERRATA_215_ENABLE_WORKAROUND 11144 : : #define NRF52_ERRATA_215_ENABLE_WORKAROUND NRF52_ERRATA_215_PRESENT 11145 : : #endif 11146 : : 11147 : 0 : static bool nrf52_errata_215(void) 11148 : : { 11149 : : #ifndef NRF52_SERIES 11150 : 0 : return false; 11151 : : #else 11152 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 11153 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 11154 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 11155 : : #endif 11156 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 11157 : : if (var1 == 0x08) 11158 : : { 11159 : : switch(var2) 11160 : : { 11161 : : case 0x00ul: 11162 : : return true; 11163 : : case 0x01ul: 11164 : : return true; 11165 : : case 0x02ul: 11166 : : return true; 11167 : : case 0x03ul: 11168 : : return true; 11169 : : case 0x04ul: 11170 : : return true; 11171 : : case 0x05ul: 11172 : : return true; 11173 : : default: 11174 : : return true; 11175 : : } 11176 : : } 11177 : : #endif 11178 : : return false; 11179 : : #endif 11180 : : } 11181 : : 11182 : : /* ========= Errata 216 ========= */ 11183 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 11184 : : #define NRF52_ERRATA_216_PRESENT 1 11185 : : #else 11186 : : #define NRF52_ERRATA_216_PRESENT 0 11187 : : #endif 11188 : : 11189 : : #ifndef NRF52_ERRATA_216_ENABLE_WORKAROUND 11190 : : #define NRF52_ERRATA_216_ENABLE_WORKAROUND NRF52_ERRATA_216_PRESENT 11191 : : #endif 11192 : : 11193 : 0 : static bool nrf52_errata_216(void) 11194 : : { 11195 : : #ifndef NRF52_SERIES 11196 : 0 : return false; 11197 : : #else 11198 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 11199 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 11200 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 11201 : : #endif 11202 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 11203 : : if (var1 == 0x08) 11204 : : { 11205 : : switch(var2) 11206 : : { 11207 : : case 0x00ul: 11208 : : return true; 11209 : : case 0x01ul: 11210 : : return true; 11211 : : case 0x02ul: 11212 : : return true; 11213 : : case 0x03ul: 11214 : : return true; 11215 : : case 0x04ul: 11216 : : return true; 11217 : : case 0x05ul: 11218 : : return true; 11219 : : default: 11220 : : return true; 11221 : : } 11222 : : } 11223 : : #endif 11224 : : return false; 11225 : : #endif 11226 : : } 11227 : : 11228 : : /* ========= Errata 217 ========= */ 11229 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 11230 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 11231 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 11232 : : #define NRF52_ERRATA_217_PRESENT 1 11233 : : #else 11234 : : #define NRF52_ERRATA_217_PRESENT 0 11235 : : #endif 11236 : : 11237 : : #ifndef NRF52_ERRATA_217_ENABLE_WORKAROUND 11238 : : #define NRF52_ERRATA_217_ENABLE_WORKAROUND NRF52_ERRATA_217_PRESENT 11239 : : #endif 11240 : : 11241 : 0 : static bool nrf52_errata_217(void) 11242 : : { 11243 : : #ifndef NRF52_SERIES 11244 : 0 : return false; 11245 : : #else 11246 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 11247 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 11248 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 11249 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 11250 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 11251 : : #endif 11252 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 11253 : : if (var1 == 0x0A) 11254 : : { 11255 : : switch(var2) 11256 : : { 11257 : : case 0x00ul: 11258 : : return false; 11259 : : case 0x01ul: 11260 : : return true; 11261 : : case 0x02ul: 11262 : : return false; 11263 : : default: 11264 : : return false; 11265 : : } 11266 : : } 11267 : : #endif 11268 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 11269 : : if (var1 == 0x0E) 11270 : : { 11271 : : switch(var2) 11272 : : { 11273 : : case 0x00ul: 11274 : : return true; 11275 : : case 0x01ul: 11276 : : return true; 11277 : : default: 11278 : : return true; 11279 : : } 11280 : : } 11281 : : #endif 11282 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 11283 : : if (var1 == 0x0F) 11284 : : { 11285 : : switch(var2) 11286 : : { 11287 : : case 0x00ul: 11288 : : return true; 11289 : : case 0x01ul: 11290 : : return true; 11291 : : default: 11292 : : return true; 11293 : : } 11294 : : } 11295 : : #endif 11296 : : return false; 11297 : : #endif 11298 : : } 11299 : : 11300 : : /* ========= Errata 218 ========= */ 11301 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 11302 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 11303 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 11304 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 11305 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 11306 : : #define NRF52_ERRATA_218_PRESENT 1 11307 : : #else 11308 : : #define NRF52_ERRATA_218_PRESENT 0 11309 : : #endif 11310 : : 11311 : : #ifndef NRF52_ERRATA_218_ENABLE_WORKAROUND 11312 : : #define NRF52_ERRATA_218_ENABLE_WORKAROUND NRF52_ERRATA_218_PRESENT 11313 : : #endif 11314 : : 11315 : 0 : static bool nrf52_errata_218(void) 11316 : : { 11317 : : #ifndef NRF52_SERIES 11318 : 0 : return false; 11319 : : #else 11320 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 11321 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 11322 : : uint32_t var1; 11323 : : uint32_t var2; 11324 : : 11325 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 11326 : : { 11327 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 11328 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 11329 : : } 11330 : : else 11331 : : { 11332 : : var1 = *(uint32_t *)0x10000130ul; 11333 : : var2 = *(uint32_t *)0x10000134ul; 11334 : : } 11335 : : #elif defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 11336 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 11337 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 11338 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 11339 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 11340 : : #endif 11341 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 11342 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 11343 : : if (var1 == 0x06) 11344 : : { 11345 : : switch(var2) 11346 : : { 11347 : : case 0x03ul: 11348 : : return false; 11349 : : case 0x04ul: 11350 : : return false; 11351 : : case 0x05ul: 11352 : : return true; 11353 : : case 0x06ul: 11354 : : return true; 11355 : : case 0x07ul: 11356 : : return true; 11357 : : default: 11358 : : return true; 11359 : : } 11360 : : } 11361 : : #endif 11362 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 11363 : : if (var1 == 0x08) 11364 : : { 11365 : : switch(var2) 11366 : : { 11367 : : case 0x00ul: 11368 : : return false; 11369 : : case 0x01ul: 11370 : : return false; 11371 : : case 0x02ul: 11372 : : return true; 11373 : : case 0x03ul: 11374 : : return true; 11375 : : case 0x04ul: 11376 : : return true; 11377 : : case 0x05ul: 11378 : : return true; 11379 : : default: 11380 : : return true; 11381 : : } 11382 : : } 11383 : : #endif 11384 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 11385 : : if (var1 == 0x0D) 11386 : : { 11387 : : switch(var2) 11388 : : { 11389 : : case 0x00ul: 11390 : : return true; 11391 : : case 0x01ul: 11392 : : return true; 11393 : : default: 11394 : : return true; 11395 : : } 11396 : : } 11397 : : #endif 11398 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 11399 : : if (var1 == 0x10) 11400 : : { 11401 : : switch(var2) 11402 : : { 11403 : : case 0x00ul: 11404 : : return true; 11405 : : case 0x01ul: 11406 : : return true; 11407 : : case 0x02ul: 11408 : : return false; 11409 : : case 0x03ul: 11410 : : return false; 11411 : : default: 11412 : : return false; 11413 : : } 11414 : : } 11415 : : #endif 11416 : : return false; 11417 : : #endif 11418 : : } 11419 : : 11420 : : /* ========= Errata 219 ========= */ 11421 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 11422 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 11423 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 11424 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 11425 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 11426 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 11427 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 11428 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 11429 : : #define NRF52_ERRATA_219_PRESENT 1 11430 : : #else 11431 : : #define NRF52_ERRATA_219_PRESENT 0 11432 : : #endif 11433 : : 11434 : : #ifndef NRF52_ERRATA_219_ENABLE_WORKAROUND 11435 : : #define NRF52_ERRATA_219_ENABLE_WORKAROUND NRF52_ERRATA_219_PRESENT 11436 : : #endif 11437 : : 11438 : 0 : static bool nrf52_errata_219(void) 11439 : : { 11440 : : #ifndef NRF52_SERIES 11441 : 0 : return false; 11442 : : #else 11443 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 11444 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 11445 : : uint32_t var1; 11446 : : uint32_t var2; 11447 : : 11448 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 11449 : : { 11450 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 11451 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 11452 : : } 11453 : : else 11454 : : { 11455 : : var1 = *(uint32_t *)0x10000130ul; 11456 : : var2 = *(uint32_t *)0x10000134ul; 11457 : : } 11458 : : #elif defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 11459 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 11460 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 11461 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 11462 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 11463 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 11464 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 11465 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 11466 : : #endif 11467 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 11468 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 11469 : : if (var1 == 0x06) 11470 : : { 11471 : : switch(var2) 11472 : : { 11473 : : case 0x03ul: 11474 : : return false; 11475 : : case 0x04ul: 11476 : : return false; 11477 : : case 0x05ul: 11478 : : return true; 11479 : : case 0x06ul: 11480 : : return true; 11481 : : case 0x07ul: 11482 : : return true; 11483 : : default: 11484 : : return true; 11485 : : } 11486 : : } 11487 : : #endif 11488 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 11489 : : if (var1 == 0x08) 11490 : : { 11491 : : switch(var2) 11492 : : { 11493 : : case 0x00ul: 11494 : : return true; 11495 : : case 0x01ul: 11496 : : return true; 11497 : : case 0x02ul: 11498 : : return true; 11499 : : case 0x03ul: 11500 : : return true; 11501 : : case 0x04ul: 11502 : : return true; 11503 : : case 0x05ul: 11504 : : return true; 11505 : : default: 11506 : : return true; 11507 : : } 11508 : : } 11509 : : #endif 11510 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 11511 : : if (var1 == 0x0A) 11512 : : { 11513 : : switch(var2) 11514 : : { 11515 : : case 0x00ul: 11516 : : return true; 11517 : : case 0x01ul: 11518 : : return true; 11519 : : case 0x02ul: 11520 : : return true; 11521 : : default: 11522 : : return true; 11523 : : } 11524 : : } 11525 : : #endif 11526 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 11527 : : if (var1 == 0x0D) 11528 : : { 11529 : : switch(var2) 11530 : : { 11531 : : case 0x00ul: 11532 : : return true; 11533 : : case 0x01ul: 11534 : : return true; 11535 : : default: 11536 : : return true; 11537 : : } 11538 : : } 11539 : : #endif 11540 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 11541 : : if (var1 == 0x0E) 11542 : : { 11543 : : switch(var2) 11544 : : { 11545 : : case 0x00ul: 11546 : : return true; 11547 : : case 0x01ul: 11548 : : return true; 11549 : : default: 11550 : : return true; 11551 : : } 11552 : : } 11553 : : #endif 11554 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 11555 : : if (var1 == 0x0F) 11556 : : { 11557 : : switch(var2) 11558 : : { 11559 : : case 0x00ul: 11560 : : return true; 11561 : : case 0x01ul: 11562 : : return true; 11563 : : default: 11564 : : return true; 11565 : : } 11566 : : } 11567 : : #endif 11568 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 11569 : : if (var1 == 0x10) 11570 : : { 11571 : : switch(var2) 11572 : : { 11573 : : case 0x00ul: 11574 : : return true; 11575 : : case 0x01ul: 11576 : : return true; 11577 : : case 0x02ul: 11578 : : return true; 11579 : : case 0x03ul: 11580 : : return true; 11581 : : default: 11582 : : return true; 11583 : : } 11584 : : } 11585 : : #endif 11586 : : return false; 11587 : : #endif 11588 : : } 11589 : : 11590 : : /* ========= Errata 220 ========= */ 11591 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 11592 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 11593 : : #define NRF52_ERRATA_220_PRESENT 1 11594 : : #else 11595 : : #define NRF52_ERRATA_220_PRESENT 0 11596 : : #endif 11597 : : 11598 : : #ifndef NRF52_ERRATA_220_ENABLE_WORKAROUND 11599 : : #define NRF52_ERRATA_220_ENABLE_WORKAROUND NRF52_ERRATA_220_PRESENT 11600 : : #endif 11601 : : 11602 : 0 : static bool nrf52_errata_220(void) 11603 : : { 11604 : : #ifndef NRF52_SERIES 11605 : 0 : return false; 11606 : : #else 11607 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 11608 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 11609 : : uint32_t var1; 11610 : : uint32_t var2; 11611 : : 11612 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 11613 : : { 11614 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 11615 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 11616 : : } 11617 : : else 11618 : : { 11619 : : var1 = *(uint32_t *)0x10000130ul; 11620 : : var2 = *(uint32_t *)0x10000134ul; 11621 : : } 11622 : : #endif 11623 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 11624 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 11625 : : if (var1 == 0x06) 11626 : : { 11627 : : switch(var2) 11628 : : { 11629 : : case 0x03ul: 11630 : : return false; 11631 : : case 0x04ul: 11632 : : return false; 11633 : : case 0x05ul: 11634 : : return true; 11635 : : case 0x06ul: 11636 : : return true; 11637 : : case 0x07ul: 11638 : : return true; 11639 : : default: 11640 : : return true; 11641 : : } 11642 : : } 11643 : : #endif 11644 : : return false; 11645 : : #endif 11646 : : } 11647 : : 11648 : : /* ========= Errata 223 ========= */ 11649 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 11650 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 11651 : : #define NRF52_ERRATA_223_PRESENT 1 11652 : : #else 11653 : : #define NRF52_ERRATA_223_PRESENT 0 11654 : : #endif 11655 : : 11656 : : #ifndef NRF52_ERRATA_223_ENABLE_WORKAROUND 11657 : : #define NRF52_ERRATA_223_ENABLE_WORKAROUND NRF52_ERRATA_223_PRESENT 11658 : : #endif 11659 : : 11660 : 0 : static bool nrf52_errata_223(void) 11661 : : { 11662 : : #ifndef NRF52_SERIES 11663 : 0 : return false; 11664 : : #else 11665 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 11666 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 11667 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 11668 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 11669 : : #endif 11670 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 11671 : : if (var1 == 0x0D) 11672 : : { 11673 : : switch(var2) 11674 : : { 11675 : : case 0x00ul: 11676 : : return true; 11677 : : case 0x01ul: 11678 : : return true; 11679 : : default: 11680 : : return true; 11681 : : } 11682 : : } 11683 : : #endif 11684 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 11685 : : if (var1 == 0x10) 11686 : : { 11687 : : switch(var2) 11688 : : { 11689 : : case 0x00ul: 11690 : : return true; 11691 : : case 0x01ul: 11692 : : return true; 11693 : : case 0x02ul: 11694 : : return true; 11695 : : case 0x03ul: 11696 : : return true; 11697 : : default: 11698 : : return true; 11699 : : } 11700 : : } 11701 : : #endif 11702 : : return false; 11703 : : #endif 11704 : : } 11705 : : 11706 : : /* ========= Errata 225 ========= */ 11707 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 11708 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 11709 : : #define NRF52_ERRATA_225_PRESENT 1 11710 : : #else 11711 : : #define NRF52_ERRATA_225_PRESENT 0 11712 : : #endif 11713 : : 11714 : : #ifndef NRF52_ERRATA_225_ENABLE_WORKAROUND 11715 : : #define NRF52_ERRATA_225_ENABLE_WORKAROUND NRF52_ERRATA_225_PRESENT 11716 : : #endif 11717 : : 11718 : 0 : static bool nrf52_errata_225(void) 11719 : : { 11720 : : #ifndef NRF52_SERIES 11721 : 0 : return false; 11722 : : #else 11723 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 11724 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 11725 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 11726 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 11727 : : #endif 11728 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 11729 : : if (var1 == 0x0D) 11730 : : { 11731 : : switch(var2) 11732 : : { 11733 : : case 0x00ul: 11734 : : return true; 11735 : : case 0x01ul: 11736 : : return true; 11737 : : default: 11738 : : return true; 11739 : : } 11740 : : } 11741 : : #endif 11742 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 11743 : : if (var1 == 0x10) 11744 : : { 11745 : : switch(var2) 11746 : : { 11747 : : case 0x00ul: 11748 : : return true; 11749 : : case 0x01ul: 11750 : : return true; 11751 : : case 0x02ul: 11752 : : return true; 11753 : : case 0x03ul: 11754 : : return true; 11755 : : default: 11756 : : return true; 11757 : : } 11758 : : } 11759 : : #endif 11760 : : return false; 11761 : : #endif 11762 : : } 11763 : : 11764 : : /* ========= Errata 228 ========= */ 11765 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 11766 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 11767 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 11768 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 11769 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 11770 : : #define NRF52_ERRATA_228_PRESENT 1 11771 : : #else 11772 : : #define NRF52_ERRATA_228_PRESENT 0 11773 : : #endif 11774 : : 11775 : : #ifndef NRF52_ERRATA_228_ENABLE_WORKAROUND 11776 : : #define NRF52_ERRATA_228_ENABLE_WORKAROUND NRF52_ERRATA_228_PRESENT 11777 : : #endif 11778 : : 11779 : 0 : static bool nrf52_errata_228(void) 11780 : : { 11781 : : #ifndef NRF52_SERIES 11782 : 0 : return false; 11783 : : #else 11784 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 11785 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 11786 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 11787 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 11788 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 11789 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 11790 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 11791 : : #endif 11792 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 11793 : : if (var1 == 0x08) 11794 : : { 11795 : : switch(var2) 11796 : : { 11797 : : case 0x00ul: 11798 : : return true; 11799 : : case 0x01ul: 11800 : : return true; 11801 : : case 0x02ul: 11802 : : return true; 11803 : : case 0x03ul: 11804 : : return true; 11805 : : case 0x04ul: 11806 : : return true; 11807 : : case 0x05ul: 11808 : : return true; 11809 : : default: 11810 : : return true; 11811 : : } 11812 : : } 11813 : : #endif 11814 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 11815 : : if (var1 == 0x0A) 11816 : : { 11817 : : switch(var2) 11818 : : { 11819 : : case 0x00ul: 11820 : : return false; 11821 : : case 0x01ul: 11822 : : return true; 11823 : : case 0x02ul: 11824 : : return false; 11825 : : default: 11826 : : return false; 11827 : : } 11828 : : } 11829 : : #endif 11830 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 11831 : : if (var1 == 0x0D) 11832 : : { 11833 : : switch(var2) 11834 : : { 11835 : : case 0x00ul: 11836 : : return true; 11837 : : case 0x01ul: 11838 : : return true; 11839 : : default: 11840 : : return true; 11841 : : } 11842 : : } 11843 : : #endif 11844 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 11845 : : if (var1 == 0x0E) 11846 : : { 11847 : : switch(var2) 11848 : : { 11849 : : case 0x00ul: 11850 : : return true; 11851 : : case 0x01ul: 11852 : : return true; 11853 : : default: 11854 : : return true; 11855 : : } 11856 : : } 11857 : : #endif 11858 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 11859 : : if (var1 == 0x10) 11860 : : { 11861 : : switch(var2) 11862 : : { 11863 : : case 0x00ul: 11864 : : return true; 11865 : : case 0x01ul: 11866 : : return true; 11867 : : case 0x02ul: 11868 : : return true; 11869 : : case 0x03ul: 11870 : : return true; 11871 : : default: 11872 : : return true; 11873 : : } 11874 : : } 11875 : : #endif 11876 : : return false; 11877 : : #endif 11878 : : } 11879 : : 11880 : : /* ========= Errata 230 ========= */ 11881 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 11882 : : #define NRF52_ERRATA_230_PRESENT 1 11883 : : #else 11884 : : #define NRF52_ERRATA_230_PRESENT 0 11885 : : #endif 11886 : : 11887 : : #ifndef NRF52_ERRATA_230_ENABLE_WORKAROUND 11888 : : #define NRF52_ERRATA_230_ENABLE_WORKAROUND NRF52_ERRATA_230_PRESENT 11889 : : #endif 11890 : : 11891 : 0 : static bool nrf52_errata_230(void) 11892 : : { 11893 : : #ifndef NRF52_SERIES 11894 : 0 : return false; 11895 : : #else 11896 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 11897 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 11898 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 11899 : : #endif 11900 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 11901 : : if (var1 == 0x10) 11902 : : { 11903 : : switch(var2) 11904 : : { 11905 : : case 0x00ul: 11906 : : return true; 11907 : : case 0x01ul: 11908 : : return false; 11909 : : case 0x02ul: 11910 : : return false; 11911 : : case 0x03ul: 11912 : : return false; 11913 : : default: 11914 : : return false; 11915 : : } 11916 : : } 11917 : : #endif 11918 : : return false; 11919 : : #endif 11920 : : } 11921 : : 11922 : : /* ========= Errata 231 ========= */ 11923 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 11924 : : #define NRF52_ERRATA_231_PRESENT 1 11925 : : #else 11926 : : #define NRF52_ERRATA_231_PRESENT 0 11927 : : #endif 11928 : : 11929 : : #ifndef NRF52_ERRATA_231_ENABLE_WORKAROUND 11930 : : #define NRF52_ERRATA_231_ENABLE_WORKAROUND NRF52_ERRATA_231_PRESENT 11931 : : #endif 11932 : : 11933 : 0 : static bool nrf52_errata_231(void) 11934 : : { 11935 : : #ifndef NRF52_SERIES 11936 : 0 : return false; 11937 : : #else 11938 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 11939 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 11940 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 11941 : : #endif 11942 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 11943 : : if (var1 == 0x10) 11944 : : { 11945 : : switch(var2) 11946 : : { 11947 : : case 0x00ul: 11948 : : return true; 11949 : : case 0x01ul: 11950 : : return false; 11951 : : case 0x02ul: 11952 : : return false; 11953 : : case 0x03ul: 11954 : : return false; 11955 : : default: 11956 : : return false; 11957 : : } 11958 : : } 11959 : : #endif 11960 : : return false; 11961 : : #endif 11962 : : } 11963 : : 11964 : : /* ========= Errata 232 ========= */ 11965 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 11966 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 11967 : : #define NRF52_ERRATA_232_PRESENT 1 11968 : : #else 11969 : : #define NRF52_ERRATA_232_PRESENT 0 11970 : : #endif 11971 : : 11972 : : #ifndef NRF52_ERRATA_232_ENABLE_WORKAROUND 11973 : : #define NRF52_ERRATA_232_ENABLE_WORKAROUND NRF52_ERRATA_232_PRESENT 11974 : : #endif 11975 : : 11976 : 0 : static bool nrf52_errata_232(void) 11977 : : { 11978 : : #ifndef NRF52_SERIES 11979 : 0 : return false; 11980 : : #else 11981 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 11982 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 11983 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 11984 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 11985 : : #endif 11986 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 11987 : : if (var1 == 0x0A) 11988 : : { 11989 : : switch(var2) 11990 : : { 11991 : : case 0x00ul: 11992 : : return false; 11993 : : case 0x01ul: 11994 : : return true; 11995 : : case 0x02ul: 11996 : : return false; 11997 : : default: 11998 : : return false; 11999 : : } 12000 : : } 12001 : : #endif 12002 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 12003 : : if (var1 == 0x0E) 12004 : : { 12005 : : switch(var2) 12006 : : { 12007 : : case 0x00ul: 12008 : : return true; 12009 : : case 0x01ul: 12010 : : return true; 12011 : : default: 12012 : : return true; 12013 : : } 12014 : : } 12015 : : #endif 12016 : : return false; 12017 : : #endif 12018 : : } 12019 : : 12020 : : /* ========= Errata 233 ========= */ 12021 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 12022 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 12023 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12024 : : #define NRF52_ERRATA_233_PRESENT 1 12025 : : #else 12026 : : #define NRF52_ERRATA_233_PRESENT 0 12027 : : #endif 12028 : : 12029 : : #ifndef NRF52_ERRATA_233_ENABLE_WORKAROUND 12030 : : #define NRF52_ERRATA_233_ENABLE_WORKAROUND NRF52_ERRATA_233_PRESENT 12031 : : #endif 12032 : : 12033 : 0 : static bool nrf52_errata_233(void) 12034 : : { 12035 : : #ifndef NRF52_SERIES 12036 : 0 : return false; 12037 : : #else 12038 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 12039 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 12040 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12041 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 12042 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 12043 : : #endif 12044 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12045 : : if (var1 == 0x08) 12046 : : { 12047 : : switch(var2) 12048 : : { 12049 : : case 0x00ul: 12050 : : return true; 12051 : : case 0x01ul: 12052 : : return true; 12053 : : case 0x02ul: 12054 : : return true; 12055 : : case 0x03ul: 12056 : : return true; 12057 : : case 0x04ul: 12058 : : return true; 12059 : : case 0x05ul: 12060 : : return true; 12061 : : default: 12062 : : return true; 12063 : : } 12064 : : } 12065 : : #endif 12066 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 12067 : : if (var1 == 0x0D) 12068 : : { 12069 : : switch(var2) 12070 : : { 12071 : : case 0x00ul: 12072 : : return true; 12073 : : case 0x01ul: 12074 : : return true; 12075 : : default: 12076 : : return true; 12077 : : } 12078 : : } 12079 : : #endif 12080 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 12081 : : if (var1 == 0x10) 12082 : : { 12083 : : switch(var2) 12084 : : { 12085 : : case 0x00ul: 12086 : : return true; 12087 : : case 0x01ul: 12088 : : return true; 12089 : : case 0x02ul: 12090 : : return true; 12091 : : case 0x03ul: 12092 : : return true; 12093 : : default: 12094 : : return true; 12095 : : } 12096 : : } 12097 : : #endif 12098 : : return false; 12099 : : #endif 12100 : : } 12101 : : 12102 : : /* ========= Errata 236 ========= */ 12103 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 12104 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 12105 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 12106 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 12107 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12108 : : #define NRF52_ERRATA_236_PRESENT 1 12109 : : #else 12110 : : #define NRF52_ERRATA_236_PRESENT 0 12111 : : #endif 12112 : : 12113 : : #ifndef NRF52_ERRATA_236_ENABLE_WORKAROUND 12114 : : #define NRF52_ERRATA_236_ENABLE_WORKAROUND NRF52_ERRATA_236_PRESENT 12115 : : #endif 12116 : : 12117 : 0 : static bool nrf52_errata_236(void) 12118 : : { 12119 : : #ifndef NRF52_SERIES 12120 : 0 : return false; 12121 : : #else 12122 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 12123 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 12124 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 12125 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 12126 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12127 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 12128 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 12129 : : #endif 12130 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12131 : : if (var1 == 0x08) 12132 : : { 12133 : : switch(var2) 12134 : : { 12135 : : case 0x00ul: 12136 : : return true; 12137 : : case 0x01ul: 12138 : : return true; 12139 : : case 0x02ul: 12140 : : return true; 12141 : : case 0x03ul: 12142 : : return true; 12143 : : case 0x04ul: 12144 : : return true; 12145 : : case 0x05ul: 12146 : : return true; 12147 : : default: 12148 : : return true; 12149 : : } 12150 : : } 12151 : : #endif 12152 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 12153 : : if (var1 == 0x0A) 12154 : : { 12155 : : switch(var2) 12156 : : { 12157 : : case 0x00ul: 12158 : : return false; 12159 : : case 0x01ul: 12160 : : return true; 12161 : : case 0x02ul: 12162 : : return false; 12163 : : default: 12164 : : return false; 12165 : : } 12166 : : } 12167 : : #endif 12168 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 12169 : : if (var1 == 0x0D) 12170 : : { 12171 : : switch(var2) 12172 : : { 12173 : : case 0x00ul: 12174 : : return true; 12175 : : case 0x01ul: 12176 : : return false; 12177 : : default: 12178 : : return false; 12179 : : } 12180 : : } 12181 : : #endif 12182 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 12183 : : if (var1 == 0x0E) 12184 : : { 12185 : : switch(var2) 12186 : : { 12187 : : case 0x00ul: 12188 : : return true; 12189 : : case 0x01ul: 12190 : : return true; 12191 : : default: 12192 : : return true; 12193 : : } 12194 : : } 12195 : : #endif 12196 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 12197 : : if (var1 == 0x10) 12198 : : { 12199 : : switch(var2) 12200 : : { 12201 : : case 0x00ul: 12202 : : return true; 12203 : : case 0x01ul: 12204 : : return true; 12205 : : case 0x02ul: 12206 : : return false; 12207 : : case 0x03ul: 12208 : : return false; 12209 : : default: 12210 : : return false; 12211 : : } 12212 : : } 12213 : : #endif 12214 : : return false; 12215 : : #endif 12216 : : } 12217 : : 12218 : : /* ========= Errata 237 ========= */ 12219 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 12220 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 12221 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 12222 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 12223 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12224 : : #define NRF52_ERRATA_237_PRESENT 1 12225 : : #else 12226 : : #define NRF52_ERRATA_237_PRESENT 0 12227 : : #endif 12228 : : 12229 : : #ifndef NRF52_ERRATA_237_ENABLE_WORKAROUND 12230 : : #define NRF52_ERRATA_237_ENABLE_WORKAROUND NRF52_ERRATA_237_PRESENT 12231 : : #endif 12232 : : 12233 : 0 : static bool nrf52_errata_237(void) 12234 : : { 12235 : : #ifndef NRF52_SERIES 12236 : 0 : return false; 12237 : : #else 12238 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 12239 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 12240 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 12241 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 12242 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12243 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 12244 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 12245 : : #endif 12246 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12247 : : if (var1 == 0x08) 12248 : : { 12249 : : switch(var2) 12250 : : { 12251 : : case 0x00ul: 12252 : : return true; 12253 : : case 0x01ul: 12254 : : return true; 12255 : : case 0x02ul: 12256 : : return true; 12257 : : case 0x03ul: 12258 : : return true; 12259 : : case 0x04ul: 12260 : : return true; 12261 : : case 0x05ul: 12262 : : return true; 12263 : : default: 12264 : : return true; 12265 : : } 12266 : : } 12267 : : #endif 12268 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 12269 : : if (var1 == 0x0A) 12270 : : { 12271 : : switch(var2) 12272 : : { 12273 : : case 0x00ul: 12274 : : return true; 12275 : : case 0x01ul: 12276 : : return true; 12277 : : case 0x02ul: 12278 : : return true; 12279 : : default: 12280 : : return true; 12281 : : } 12282 : : } 12283 : : #endif 12284 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 12285 : : if (var1 == 0x0D) 12286 : : { 12287 : : switch(var2) 12288 : : { 12289 : : case 0x00ul: 12290 : : return true; 12291 : : case 0x01ul: 12292 : : return true; 12293 : : default: 12294 : : return true; 12295 : : } 12296 : : } 12297 : : #endif 12298 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 12299 : : if (var1 == 0x0E) 12300 : : { 12301 : : switch(var2) 12302 : : { 12303 : : case 0x00ul: 12304 : : return true; 12305 : : case 0x01ul: 12306 : : return true; 12307 : : default: 12308 : : return true; 12309 : : } 12310 : : } 12311 : : #endif 12312 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 12313 : : if (var1 == 0x10) 12314 : : { 12315 : : switch(var2) 12316 : : { 12317 : : case 0x00ul: 12318 : : return true; 12319 : : case 0x01ul: 12320 : : return true; 12321 : : case 0x02ul: 12322 : : return false; 12323 : : case 0x03ul: 12324 : : return false; 12325 : : default: 12326 : : return false; 12327 : : } 12328 : : } 12329 : : #endif 12330 : : return false; 12331 : : #endif 12332 : : } 12333 : : 12334 : : /* ========= Errata 242 ========= */ 12335 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 12336 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 12337 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 12338 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12339 : : #define NRF52_ERRATA_242_PRESENT 1 12340 : : #else 12341 : : #define NRF52_ERRATA_242_PRESENT 0 12342 : : #endif 12343 : : 12344 : : #ifndef NRF52_ERRATA_242_ENABLE_WORKAROUND 12345 : : #define NRF52_ERRATA_242_ENABLE_WORKAROUND NRF52_ERRATA_242_PRESENT 12346 : : #endif 12347 : : 12348 : 0 : static bool nrf52_errata_242(void) 12349 : : { 12350 : : #ifndef NRF52_SERIES 12351 : 0 : return false; 12352 : : #else 12353 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 12354 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 12355 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 12356 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12357 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 12358 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 12359 : : #endif 12360 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12361 : : if (var1 == 0x08) 12362 : : { 12363 : : switch(var2) 12364 : : { 12365 : : case 0x00ul: 12366 : : return true; 12367 : : case 0x01ul: 12368 : : return true; 12369 : : case 0x02ul: 12370 : : return true; 12371 : : case 0x03ul: 12372 : : return true; 12373 : : case 0x04ul: 12374 : : return true; 12375 : : case 0x05ul: 12376 : : return true; 12377 : : default: 12378 : : return true; 12379 : : } 12380 : : } 12381 : : #endif 12382 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 12383 : : if (var1 == 0x0A) 12384 : : { 12385 : : switch(var2) 12386 : : { 12387 : : case 0x00ul: 12388 : : return true; 12389 : : case 0x01ul: 12390 : : return true; 12391 : : case 0x02ul: 12392 : : return true; 12393 : : default: 12394 : : return true; 12395 : : } 12396 : : } 12397 : : #endif 12398 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 12399 : : if (var1 == 0x0E) 12400 : : { 12401 : : switch(var2) 12402 : : { 12403 : : case 0x00ul: 12404 : : return true; 12405 : : case 0x01ul: 12406 : : return true; 12407 : : default: 12408 : : return true; 12409 : : } 12410 : : } 12411 : : #endif 12412 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 12413 : : if (var1 == 0x0F) 12414 : : { 12415 : : switch(var2) 12416 : : { 12417 : : case 0x00ul: 12418 : : return true; 12419 : : case 0x01ul: 12420 : : return true; 12421 : : default: 12422 : : return true; 12423 : : } 12424 : : } 12425 : : #endif 12426 : : return false; 12427 : : #endif 12428 : : } 12429 : : 12430 : : /* ========= Errata 243 ========= */ 12431 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 12432 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 12433 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12434 : : #define NRF52_ERRATA_243_PRESENT 1 12435 : : #else 12436 : : #define NRF52_ERRATA_243_PRESENT 0 12437 : : #endif 12438 : : 12439 : : #ifndef NRF52_ERRATA_243_ENABLE_WORKAROUND 12440 : : #define NRF52_ERRATA_243_ENABLE_WORKAROUND NRF52_ERRATA_243_PRESENT 12441 : : #endif 12442 : : 12443 : 0 : static bool nrf52_errata_243(void) 12444 : : { 12445 : : #ifndef NRF52_SERIES 12446 : 0 : return false; 12447 : : #else 12448 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 12449 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 12450 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12451 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 12452 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 12453 : : #endif 12454 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12455 : : if (var1 == 0x08) 12456 : : { 12457 : : switch(var2) 12458 : : { 12459 : : case 0x00ul: 12460 : : return true; 12461 : : case 0x01ul: 12462 : : return true; 12463 : : case 0x02ul: 12464 : : return true; 12465 : : case 0x03ul: 12466 : : return true; 12467 : : case 0x04ul: 12468 : : return true; 12469 : : case 0x05ul: 12470 : : return true; 12471 : : default: 12472 : : return true; 12473 : : } 12474 : : } 12475 : : #endif 12476 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 12477 : : if (var1 == 0x0D) 12478 : : { 12479 : : switch(var2) 12480 : : { 12481 : : case 0x00ul: 12482 : : return true; 12483 : : case 0x01ul: 12484 : : return true; 12485 : : default: 12486 : : return true; 12487 : : } 12488 : : } 12489 : : #endif 12490 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 12491 : : if (var1 == 0x10) 12492 : : { 12493 : : switch(var2) 12494 : : { 12495 : : case 0x00ul: 12496 : : return true; 12497 : : case 0x01ul: 12498 : : return true; 12499 : : case 0x02ul: 12500 : : return true; 12501 : : case 0x03ul: 12502 : : return true; 12503 : : default: 12504 : : return true; 12505 : : } 12506 : : } 12507 : : #endif 12508 : : return false; 12509 : : #endif 12510 : : } 12511 : : 12512 : : /* ========= Errata 244 ========= */ 12513 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12514 : : #define NRF52_ERRATA_244_PRESENT 1 12515 : : #else 12516 : : #define NRF52_ERRATA_244_PRESENT 0 12517 : : #endif 12518 : : 12519 : : #ifndef NRF52_ERRATA_244_ENABLE_WORKAROUND 12520 : : #define NRF52_ERRATA_244_ENABLE_WORKAROUND NRF52_ERRATA_244_PRESENT 12521 : : #endif 12522 : : 12523 : 0 : static bool nrf52_errata_244(void) 12524 : : { 12525 : : #ifndef NRF52_SERIES 12526 : 0 : return false; 12527 : : #else 12528 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12529 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 12530 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 12531 : : #endif 12532 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12533 : : if (var1 == 0x08) 12534 : : { 12535 : : switch(var2) 12536 : : { 12537 : : case 0x00ul: 12538 : : return true; 12539 : : case 0x01ul: 12540 : : return true; 12541 : : case 0x02ul: 12542 : : return true; 12543 : : case 0x03ul: 12544 : : return true; 12545 : : case 0x04ul: 12546 : : return true; 12547 : : case 0x05ul: 12548 : : return true; 12549 : : default: 12550 : : return true; 12551 : : } 12552 : : } 12553 : : #endif 12554 : : return false; 12555 : : #endif 12556 : : } 12557 : : 12558 : : /* ========= Errata 245 ========= */ 12559 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 12560 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 12561 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 12562 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 12563 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 12564 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 12565 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 12566 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12567 : : #define NRF52_ERRATA_245_PRESENT 1 12568 : : #else 12569 : : #define NRF52_ERRATA_245_PRESENT 0 12570 : : #endif 12571 : : 12572 : : #ifndef NRF52_ERRATA_245_ENABLE_WORKAROUND 12573 : : #define NRF52_ERRATA_245_ENABLE_WORKAROUND 0 12574 : : #endif 12575 : : 12576 : 0 : static bool nrf52_errata_245(void) 12577 : : { 12578 : : #ifndef NRF52_SERIES 12579 : 0 : return false; 12580 : : #else 12581 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 12582 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 12583 : : uint32_t var1; 12584 : : uint32_t var2; 12585 : : 12586 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 12587 : : { 12588 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 12589 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 12590 : : } 12591 : : else 12592 : : { 12593 : : var1 = *(uint32_t *)0x10000130ul; 12594 : : var2 = *(uint32_t *)0x10000134ul; 12595 : : } 12596 : : #elif defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 12597 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 12598 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 12599 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 12600 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 12601 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12602 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 12603 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 12604 : : #endif 12605 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 12606 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 12607 : : if (var1 == 0x06) 12608 : : { 12609 : : switch(var2) 12610 : : { 12611 : : case 0x03ul: 12612 : : return true; 12613 : : case 0x04ul: 12614 : : return true; 12615 : : case 0x05ul: 12616 : : return true; 12617 : : case 0x06ul: 12618 : : return true; 12619 : : case 0x07ul: 12620 : : return true; 12621 : : default: 12622 : : return true; 12623 : : } 12624 : : } 12625 : : #endif 12626 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12627 : : if (var1 == 0x08) 12628 : : { 12629 : : switch(var2) 12630 : : { 12631 : : case 0x00ul: 12632 : : return true; 12633 : : case 0x01ul: 12634 : : return true; 12635 : : case 0x02ul: 12636 : : return true; 12637 : : case 0x03ul: 12638 : : return true; 12639 : : case 0x04ul: 12640 : : return true; 12641 : : case 0x05ul: 12642 : : return true; 12643 : : default: 12644 : : return true; 12645 : : } 12646 : : } 12647 : : #endif 12648 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 12649 : : if (var1 == 0x0A) 12650 : : { 12651 : : switch(var2) 12652 : : { 12653 : : case 0x00ul: 12654 : : return true; 12655 : : case 0x01ul: 12656 : : return true; 12657 : : case 0x02ul: 12658 : : return true; 12659 : : default: 12660 : : return true; 12661 : : } 12662 : : } 12663 : : #endif 12664 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 12665 : : if (var1 == 0x0D) 12666 : : { 12667 : : switch(var2) 12668 : : { 12669 : : case 0x00ul: 12670 : : return true; 12671 : : case 0x01ul: 12672 : : return true; 12673 : : default: 12674 : : return true; 12675 : : } 12676 : : } 12677 : : #endif 12678 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 12679 : : if (var1 == 0x0E) 12680 : : { 12681 : : switch(var2) 12682 : : { 12683 : : case 0x00ul: 12684 : : return true; 12685 : : case 0x01ul: 12686 : : return true; 12687 : : default: 12688 : : return true; 12689 : : } 12690 : : } 12691 : : #endif 12692 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 12693 : : if (var1 == 0x0F) 12694 : : { 12695 : : switch(var2) 12696 : : { 12697 : : case 0x00ul: 12698 : : return true; 12699 : : case 0x01ul: 12700 : : return true; 12701 : : default: 12702 : : return true; 12703 : : } 12704 : : } 12705 : : #endif 12706 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 12707 : : if (var1 == 0x10) 12708 : : { 12709 : : switch(var2) 12710 : : { 12711 : : case 0x00ul: 12712 : : return true; 12713 : : case 0x01ul: 12714 : : return true; 12715 : : case 0x02ul: 12716 : : return true; 12717 : : case 0x03ul: 12718 : : return true; 12719 : : default: 12720 : : return true; 12721 : : } 12722 : : } 12723 : : #endif 12724 : : return false; 12725 : : #endif 12726 : : } 12727 : : 12728 : : /* ========= Errata 246 ========= */ 12729 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 12730 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 12731 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 12732 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 12733 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 12734 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12735 : : #define NRF52_ERRATA_246_PRESENT 1 12736 : : #else 12737 : : #define NRF52_ERRATA_246_PRESENT 0 12738 : : #endif 12739 : : 12740 : : #ifndef NRF52_ERRATA_246_ENABLE_WORKAROUND 12741 : : #define NRF52_ERRATA_246_ENABLE_WORKAROUND NRF52_ERRATA_246_PRESENT 12742 : : #endif 12743 : : 12744 : 0 : static bool nrf52_errata_246(void) 12745 : : { 12746 : : #ifndef NRF52_SERIES 12747 : 0 : return false; 12748 : : #else 12749 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 12750 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 12751 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 12752 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 12753 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 12754 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12755 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 12756 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 12757 : : #endif 12758 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12759 : : if (var1 == 0x08) 12760 : : { 12761 : : switch(var2) 12762 : : { 12763 : : case 0x00ul: 12764 : : return true; 12765 : : case 0x01ul: 12766 : : return true; 12767 : : case 0x02ul: 12768 : : return true; 12769 : : case 0x03ul: 12770 : : return true; 12771 : : case 0x04ul: 12772 : : return true; 12773 : : case 0x05ul: 12774 : : return true; 12775 : : default: 12776 : : return true; 12777 : : } 12778 : : } 12779 : : #endif 12780 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 12781 : : if (var1 == 0x0A) 12782 : : { 12783 : : switch(var2) 12784 : : { 12785 : : case 0x00ul: 12786 : : return true; 12787 : : case 0x01ul: 12788 : : return true; 12789 : : case 0x02ul: 12790 : : return true; 12791 : : default: 12792 : : return true; 12793 : : } 12794 : : } 12795 : : #endif 12796 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 12797 : : if (var1 == 0x0D) 12798 : : { 12799 : : switch(var2) 12800 : : { 12801 : : case 0x00ul: 12802 : : return true; 12803 : : case 0x01ul: 12804 : : return true; 12805 : : default: 12806 : : return true; 12807 : : } 12808 : : } 12809 : : #endif 12810 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 12811 : : if (var1 == 0x0E) 12812 : : { 12813 : : switch(var2) 12814 : : { 12815 : : case 0x00ul: 12816 : : return true; 12817 : : case 0x01ul: 12818 : : return true; 12819 : : default: 12820 : : return true; 12821 : : } 12822 : : } 12823 : : #endif 12824 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 12825 : : if (var1 == 0x0F) 12826 : : { 12827 : : switch(var2) 12828 : : { 12829 : : case 0x00ul: 12830 : : return true; 12831 : : case 0x01ul: 12832 : : return true; 12833 : : default: 12834 : : return true; 12835 : : } 12836 : : } 12837 : : #endif 12838 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 12839 : : if (var1 == 0x10) 12840 : : { 12841 : : switch(var2) 12842 : : { 12843 : : case 0x00ul: 12844 : : return true; 12845 : : case 0x01ul: 12846 : : return true; 12847 : : case 0x02ul: 12848 : : return true; 12849 : : case 0x03ul: 12850 : : return true; 12851 : : default: 12852 : : return true; 12853 : : } 12854 : : } 12855 : : #endif 12856 : : return false; 12857 : : #endif 12858 : : } 12859 : : 12860 : : /* ========= Errata 248 ========= */ 12861 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 12862 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 12863 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 12864 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 12865 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12866 : : #define NRF52_ERRATA_248_PRESENT 1 12867 : : #else 12868 : : #define NRF52_ERRATA_248_PRESENT 0 12869 : : #endif 12870 : : 12871 : : #ifndef NRF52_ERRATA_248_ENABLE_WORKAROUND 12872 : : #define NRF52_ERRATA_248_ENABLE_WORKAROUND NRF52_ERRATA_248_PRESENT 12873 : : #endif 12874 : : 12875 : 0 : static bool nrf52_errata_248(void) 12876 : : { 12877 : : #ifndef NRF52_SERIES 12878 : 0 : return false; 12879 : : #else 12880 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 12881 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 12882 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 12883 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 12884 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12885 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 12886 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 12887 : : #endif 12888 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12889 : : if (var1 == 0x08) 12890 : : { 12891 : : switch(var2) 12892 : : { 12893 : : case 0x00ul: 12894 : : return true; 12895 : : case 0x01ul: 12896 : : return true; 12897 : : case 0x02ul: 12898 : : return true; 12899 : : case 0x03ul: 12900 : : return true; 12901 : : case 0x04ul: 12902 : : return true; 12903 : : case 0x05ul: 12904 : : return true; 12905 : : default: 12906 : : return true; 12907 : : } 12908 : : } 12909 : : #endif 12910 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 12911 : : if (var1 == 0x0A) 12912 : : { 12913 : : switch(var2) 12914 : : { 12915 : : case 0x00ul: 12916 : : return false; 12917 : : case 0x01ul: 12918 : : return true; 12919 : : case 0x02ul: 12920 : : return false; 12921 : : default: 12922 : : return false; 12923 : : } 12924 : : } 12925 : : #endif 12926 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 12927 : : if (var1 == 0x0D) 12928 : : { 12929 : : switch(var2) 12930 : : { 12931 : : case 0x00ul: 12932 : : return true; 12933 : : case 0x01ul: 12934 : : return true; 12935 : : default: 12936 : : return true; 12937 : : } 12938 : : } 12939 : : #endif 12940 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 12941 : : if (var1 == 0x0E) 12942 : : { 12943 : : switch(var2) 12944 : : { 12945 : : case 0x00ul: 12946 : : return true; 12947 : : case 0x01ul: 12948 : : return true; 12949 : : default: 12950 : : return true; 12951 : : } 12952 : : } 12953 : : #endif 12954 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 12955 : : if (var1 == 0x10) 12956 : : { 12957 : : switch(var2) 12958 : : { 12959 : : case 0x00ul: 12960 : : return true; 12961 : : case 0x01ul: 12962 : : return true; 12963 : : case 0x02ul: 12964 : : return true; 12965 : : case 0x03ul: 12966 : : return true; 12967 : : default: 12968 : : return true; 12969 : : } 12970 : : } 12971 : : #endif 12972 : : return false; 12973 : : #endif 12974 : : } 12975 : : 12976 : : /* ========= Errata 249 ========= */ 12977 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) \ 12978 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 12979 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 12980 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 12981 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 12982 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 12983 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 12984 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 12985 : : #define NRF52_CONFIGURATION_249_PRESENT 1 12986 : : #else 12987 : : #define NRF52_CONFIGURATION_249_PRESENT 0 12988 : : #endif 12989 : : 12990 : : #ifndef NRF52_CONFIGURATION_249_ENABLE 12991 : : #define NRF52_CONFIGURATION_249_ENABLE NRF52_CONFIGURATION_249_PRESENT 12992 : : #endif 12993 : : 12994 : 0 : static bool nrf52_configuration_249(void) 12995 : : { 12996 : : #ifndef NRF52_SERIES 12997 : 0 : return false; 12998 : : #else 12999 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805)\ 13000 : : || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 13001 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 13002 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 13003 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 13004 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832)\ 13005 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 13006 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 13007 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 13008 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 13009 : : #endif 13010 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 13011 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 13012 : : if (var1 == 0x06) 13013 : : { 13014 : : switch(var2) 13015 : : { 13016 : : case 0x03ul: 13017 : : return false; 13018 : : case 0x04ul: 13019 : : return false; 13020 : : case 0x05ul: 13021 : : return false; 13022 : : case 0x06ul: 13023 : : return false; 13024 : : case 0x07ul: 13025 : : return true; 13026 : : default: 13027 : : return true; 13028 : : } 13029 : : } 13030 : : #endif 13031 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 13032 : : if (var1 == 0x08) 13033 : : { 13034 : : switch(var2) 13035 : : { 13036 : : case 0x00ul: 13037 : : return false; 13038 : : case 0x01ul: 13039 : : return false; 13040 : : case 0x02ul: 13041 : : return false; 13042 : : case 0x03ul: 13043 : : return false; 13044 : : case 0x04ul: 13045 : : return false; 13046 : : case 0x05ul: 13047 : : return true; 13048 : : default: 13049 : : return true; 13050 : : } 13051 : : } 13052 : : #endif 13053 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 13054 : : if (var1 == 0x0A) 13055 : : { 13056 : : switch(var2) 13057 : : { 13058 : : case 0x00ul: 13059 : : return false; 13060 : : case 0x01ul: 13061 : : return false; 13062 : : case 0x02ul: 13063 : : return true; 13064 : : default: 13065 : : return true; 13066 : : } 13067 : : } 13068 : : #endif 13069 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 13070 : : if (var1 == 0x0D) 13071 : : { 13072 : : switch(var2) 13073 : : { 13074 : : case 0x00ul: 13075 : : return false; 13076 : : case 0x01ul: 13077 : : return true; 13078 : : default: 13079 : : return true; 13080 : : } 13081 : : } 13082 : : #endif 13083 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 13084 : : if (var1 == 0x0E) 13085 : : { 13086 : : switch(var2) 13087 : : { 13088 : : case 0x00ul: 13089 : : return false; 13090 : : case 0x01ul: 13091 : : return true; 13092 : : default: 13093 : : return true; 13094 : : } 13095 : : } 13096 : : #endif 13097 : : #if defined (NRF52805_XXAA) || defined (DEVELOP_IN_NRF52805) 13098 : : if (var1 == 0x0F) 13099 : : { 13100 : : switch(var2) 13101 : : { 13102 : : case 0x00ul: 13103 : : return false; 13104 : : case 0x01ul: 13105 : : return true; 13106 : : default: 13107 : : return true; 13108 : : } 13109 : : } 13110 : : #endif 13111 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 13112 : : if (var1 == 0x10) 13113 : : { 13114 : : switch(var2) 13115 : : { 13116 : : case 0x00ul: 13117 : : return false; 13118 : : case 0x01ul: 13119 : : return false; 13120 : : case 0x02ul: 13121 : : return false; 13122 : : case 0x03ul: 13123 : : return true; 13124 : : default: 13125 : : return true; 13126 : : } 13127 : : } 13128 : : #endif 13129 : : return false; 13130 : : #endif 13131 : : } 13132 : : 13133 : : /* ========= Errata 250 ========= */ 13134 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 13135 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 13136 : : #define NRF52_ERRATA_250_PRESENT 1 13137 : : #else 13138 : : #define NRF52_ERRATA_250_PRESENT 0 13139 : : #endif 13140 : : 13141 : : #ifndef NRF52_ERRATA_250_ENABLE_WORKAROUND 13142 : : #define NRF52_ERRATA_250_ENABLE_WORKAROUND NRF52_ERRATA_250_PRESENT 13143 : : #endif 13144 : : 13145 : 0 : static bool nrf52_errata_250(void) 13146 : : { 13147 : : #ifndef NRF52_SERIES 13148 : 0 : return false; 13149 : : #else 13150 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 13151 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 13152 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 13153 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 13154 : : #endif 13155 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 13156 : : if (var1 == 0x0D) 13157 : : { 13158 : : switch(var2) 13159 : : { 13160 : : case 0x00ul: 13161 : : return true; 13162 : : case 0x01ul: 13163 : : return true; 13164 : : default: 13165 : : return true; 13166 : : } 13167 : : } 13168 : : #endif 13169 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 13170 : : if (var1 == 0x10) 13171 : : { 13172 : : switch(var2) 13173 : : { 13174 : : case 0x00ul: 13175 : : return true; 13176 : : case 0x01ul: 13177 : : return true; 13178 : : case 0x02ul: 13179 : : return true; 13180 : : case 0x03ul: 13181 : : return true; 13182 : : default: 13183 : : return true; 13184 : : } 13185 : : } 13186 : : #endif 13187 : : return false; 13188 : : #endif 13189 : : } 13190 : : 13191 : : /* ========= Errata 251 ========= */ 13192 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 13193 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 13194 : : #define NRF52_ERRATA_251_PRESENT 1 13195 : : #else 13196 : : #define NRF52_ERRATA_251_PRESENT 0 13197 : : #endif 13198 : : 13199 : : #ifndef NRF52_ERRATA_251_ENABLE_WORKAROUND 13200 : : #define NRF52_ERRATA_251_ENABLE_WORKAROUND NRF52_ERRATA_251_PRESENT 13201 : : #endif 13202 : : 13203 : 0 : static bool nrf52_errata_251(void) 13204 : : { 13205 : : #ifndef NRF52_SERIES 13206 : 0 : return false; 13207 : : #else 13208 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 13209 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 13210 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 13211 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 13212 : : #endif 13213 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 13214 : : if (var1 == 0x0D) 13215 : : { 13216 : : switch(var2) 13217 : : { 13218 : : case 0x00ul: 13219 : : return true; 13220 : : case 0x01ul: 13221 : : return true; 13222 : : default: 13223 : : return true; 13224 : : } 13225 : : } 13226 : : #endif 13227 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 13228 : : if (var1 == 0x10) 13229 : : { 13230 : : switch(var2) 13231 : : { 13232 : : case 0x00ul: 13233 : : return true; 13234 : : case 0x01ul: 13235 : : return true; 13236 : : case 0x02ul: 13237 : : return true; 13238 : : case 0x03ul: 13239 : : return true; 13240 : : default: 13241 : : return true; 13242 : : } 13243 : : } 13244 : : #endif 13245 : : return false; 13246 : : #endif 13247 : : } 13248 : : 13249 : : /* ========= Errata 252 ========= */ 13250 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) \ 13251 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) \ 13252 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) \ 13253 : : || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832) \ 13254 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) \ 13255 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) \ 13256 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 13257 : : #define NRF52_ERRATA_252_PRESENT 1 13258 : : #else 13259 : : #define NRF52_ERRATA_252_PRESENT 0 13260 : : #endif 13261 : : 13262 : : #ifndef NRF52_ERRATA_252_ENABLE_WORKAROUND 13263 : : #define NRF52_ERRATA_252_ENABLE_WORKAROUND NRF52_ERRATA_252_PRESENT 13264 : : #endif 13265 : : 13266 : 0 : static bool nrf52_errata_252(void) 13267 : : { 13268 : : #ifndef NRF52_SERIES 13269 : 0 : return false; 13270 : : #else 13271 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 13272 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 13273 : : uint32_t var1; 13274 : : uint32_t var2; 13275 : : 13276 : : if (*(uint32_t *)0x10000130ul == 0xFFFFFFFF) 13277 : : { 13278 : : var1 = ((*(uint32_t *)0xF0000FE0ul) & 0x000000FFul); 13279 : : var2 = ((*(uint32_t *)0xF0000FE8ul) & 0x000000F0ul) >> 4; 13280 : : } 13281 : : else 13282 : : { 13283 : : var1 = *(uint32_t *)0x10000130ul; 13284 : : var2 = *(uint32_t *)0x10000134ul; 13285 : : } 13286 : : #elif defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\ 13287 : : || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\ 13288 : : || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\ 13289 : : || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\ 13290 : : || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 13291 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 13292 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 13293 : : #endif 13294 : : #if defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\ 13295 : : || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832) 13296 : : if (var1 == 0x06) 13297 : : { 13298 : : switch(var2) 13299 : : { 13300 : : case 0x03ul: 13301 : : return true; 13302 : : case 0x04ul: 13303 : : return true; 13304 : : case 0x05ul: 13305 : : return true; 13306 : : case 0x06ul: 13307 : : return true; 13308 : : case 0x07ul: 13309 : : return true; 13310 : : default: 13311 : : return true; 13312 : : } 13313 : : } 13314 : : #endif 13315 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 13316 : : if (var1 == 0x08) 13317 : : { 13318 : : switch(var2) 13319 : : { 13320 : : case 0x00ul: 13321 : : return true; 13322 : : case 0x01ul: 13323 : : return true; 13324 : : case 0x02ul: 13325 : : return true; 13326 : : case 0x03ul: 13327 : : return true; 13328 : : case 0x04ul: 13329 : : return true; 13330 : : case 0x05ul: 13331 : : return true; 13332 : : default: 13333 : : return true; 13334 : : } 13335 : : } 13336 : : #endif 13337 : : #if defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810) 13338 : : if (var1 == 0x0A) 13339 : : { 13340 : : switch(var2) 13341 : : { 13342 : : case 0x00ul: 13343 : : return true; 13344 : : case 0x01ul: 13345 : : return true; 13346 : : case 0x02ul: 13347 : : return true; 13348 : : default: 13349 : : return true; 13350 : : } 13351 : : } 13352 : : #endif 13353 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 13354 : : if (var1 == 0x0D) 13355 : : { 13356 : : switch(var2) 13357 : : { 13358 : : case 0x00ul: 13359 : : return true; 13360 : : case 0x01ul: 13361 : : return true; 13362 : : default: 13363 : : return true; 13364 : : } 13365 : : } 13366 : : #endif 13367 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 13368 : : if (var1 == 0x0E) 13369 : : { 13370 : : switch(var2) 13371 : : { 13372 : : case 0x00ul: 13373 : : return true; 13374 : : case 0x01ul: 13375 : : return true; 13376 : : default: 13377 : : return true; 13378 : : } 13379 : : } 13380 : : #endif 13381 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 13382 : : if (var1 == 0x10) 13383 : : { 13384 : : switch(var2) 13385 : : { 13386 : : case 0x00ul: 13387 : : return true; 13388 : : case 0x01ul: 13389 : : return true; 13390 : : case 0x02ul: 13391 : : return false; 13392 : : case 0x03ul: 13393 : : return false; 13394 : : default: 13395 : : return false; 13396 : : } 13397 : : } 13398 : : #endif 13399 : : return false; 13400 : : #endif 13401 : : } 13402 : : 13403 : : /* ========= Errata 254 ========= */ 13404 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 13405 : : #define NRF52_CONFIGURATION_254_PRESENT 1 13406 : : #else 13407 : : #define NRF52_CONFIGURATION_254_PRESENT 0 13408 : : #endif 13409 : : 13410 : : #ifndef NRF52_CONFIGURATION_254_ENABLE 13411 : : #define NRF52_CONFIGURATION_254_ENABLE NRF52_CONFIGURATION_254_PRESENT 13412 : : #endif 13413 : : 13414 : 0 : static bool nrf52_configuration_254(void) 13415 : : { 13416 : : #ifndef NRF52_SERIES 13417 : 0 : return false; 13418 : : #else 13419 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 13420 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 13421 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 13422 : : #endif 13423 : : #if defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840) 13424 : : if (var1 == 0x08) 13425 : : { 13426 : : switch(var2) 13427 : : { 13428 : : case 0x00ul: 13429 : : return false; 13430 : : case 0x01ul: 13431 : : return false; 13432 : : case 0x02ul: 13433 : : return false; 13434 : : case 0x03ul: 13435 : : return false; 13436 : : case 0x04ul: 13437 : : return false; 13438 : : case 0x05ul: 13439 : : return true; 13440 : : default: 13441 : : return true; 13442 : : } 13443 : : } 13444 : : #endif 13445 : : return false; 13446 : : #endif 13447 : : } 13448 : : 13449 : : /* ========= Errata 255 ========= */ 13450 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 13451 : : #define NRF52_CONFIGURATION_255_PRESENT 1 13452 : : #else 13453 : : #define NRF52_CONFIGURATION_255_PRESENT 0 13454 : : #endif 13455 : : 13456 : : #ifndef NRF52_CONFIGURATION_255_ENABLE 13457 : : #define NRF52_CONFIGURATION_255_ENABLE NRF52_CONFIGURATION_255_PRESENT 13458 : : #endif 13459 : : 13460 : 0 : static bool nrf52_configuration_255(void) 13461 : : { 13462 : : #ifndef NRF52_SERIES 13463 : 0 : return false; 13464 : : #else 13465 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 13466 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 13467 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 13468 : : #endif 13469 : : #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833) 13470 : : if (var1 == 0x0D) 13471 : : { 13472 : : switch(var2) 13473 : : { 13474 : : case 0x00ul: 13475 : : return false; 13476 : : case 0x01ul: 13477 : : return true; 13478 : : default: 13479 : : return true; 13480 : : } 13481 : : } 13482 : : #endif 13483 : : return false; 13484 : : #endif 13485 : : } 13486 : : 13487 : : /* ========= Errata 256 ========= */ 13488 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 13489 : : #define NRF52_CONFIGURATION_256_PRESENT 1 13490 : : #else 13491 : : #define NRF52_CONFIGURATION_256_PRESENT 0 13492 : : #endif 13493 : : 13494 : : #ifndef NRF52_CONFIGURATION_256_ENABLE 13495 : : #define NRF52_CONFIGURATION_256_ENABLE NRF52_CONFIGURATION_256_PRESENT 13496 : : #endif 13497 : : 13498 : 0 : static bool nrf52_configuration_256(void) 13499 : : { 13500 : : #ifndef NRF52_SERIES 13501 : 0 : return false; 13502 : : #else 13503 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 13504 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 13505 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 13506 : : #endif 13507 : : #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820) 13508 : : if (var1 == 0x10) 13509 : : { 13510 : : switch(var2) 13511 : : { 13512 : : case 0x00ul: 13513 : : return false; 13514 : : case 0x01ul: 13515 : : return false; 13516 : : case 0x02ul: 13517 : : return false; 13518 : : case 0x03ul: 13519 : : return true; 13520 : : default: 13521 : : return true; 13522 : : } 13523 : : } 13524 : : #endif 13525 : : return false; 13526 : : #endif 13527 : : } 13528 : : 13529 : : /* ========= Errata 257 ========= */ 13530 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 13531 : : #define NRF52_CONFIGURATION_257_PRESENT 1 13532 : : #else 13533 : : #define NRF52_CONFIGURATION_257_PRESENT 0 13534 : : #endif 13535 : : 13536 : : #ifndef NRF52_CONFIGURATION_257_ENABLE 13537 : : #define NRF52_CONFIGURATION_257_ENABLE NRF52_CONFIGURATION_257_PRESENT 13538 : : #endif 13539 : : 13540 : 0 : static bool nrf52_configuration_257(void) 13541 : : { 13542 : : #ifndef NRF52_SERIES 13543 : 0 : return false; 13544 : : #else 13545 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 13546 : : uint32_t var1 = *(uint32_t *)0x10000130ul; 13547 : : uint32_t var2 = *(uint32_t *)0x10000134ul; 13548 : : #endif 13549 : : #if defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811) 13550 : : if (var1 == 0x0E) 13551 : : { 13552 : : switch(var2) 13553 : : { 13554 : : case 0x00ul: 13555 : : return false; 13556 : : case 0x01ul: 13557 : : return true; 13558 : : default: 13559 : : return true; 13560 : : } 13561 : : } 13562 : : #endif 13563 : : return false; 13564 : : #endif 13565 : : } 13566 : : 13567 : : #endif /* NRF52_ERRATAS_H */