nrf91_erratas.h 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750
  1. #ifndef NRF91_ERRATAS_H
  2. #define NRF91_ERRATAS_H
  3. /*
  4. Copyright (c) 2010 - 2020, Nordic Semiconductor ASA
  5. All rights reserved.
  6. Redistribution and use in source and binary forms, with or without modification,
  7. are permitted provided that the following conditions are met:
  8. 1. Redistributions of source code must retain the above copyright notice, this
  9. list of conditions and the following disclaimer.
  10. 2. Redistributions in binary form, except as embedded into a Nordic
  11. Semiconductor ASA integrated circuit in a product or a software update for
  12. such product, must reproduce the above copyright notice, this list of
  13. conditions and the following disclaimer in the documentation and/or other
  14. materials provided with the distribution.
  15. 3. Neither the name of Nordic Semiconductor ASA nor the names of its
  16. contributors may be used to endorse or promote products derived from this
  17. software without specific prior written permission.
  18. 4. This software, with or without modification, must only be used with a
  19. Nordic Semiconductor ASA integrated circuit.
  20. 5. Any software provided in binary form under this license must not be reverse
  21. engineered, decompiled, modified and/or disassembled.
  22. THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
  23. OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  24. OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
  25. DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
  26. LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  27. CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
  28. GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  29. HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  30. LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  31. OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  32. */
  33. #include <stdint.h>
  34. #include <stdbool.h>
  35. #include "compiler_abstraction.h"
  36. static bool nrf91_errata_1(void) __UNUSED;
  37. static bool nrf91_errata_2(void) __UNUSED;
  38. static bool nrf91_errata_4(void) __UNUSED;
  39. static bool nrf91_errata_6(void) __UNUSED;
  40. static bool nrf91_errata_7(void) __UNUSED;
  41. static bool nrf91_errata_8(void) __UNUSED;
  42. static bool nrf91_errata_9(void) __UNUSED;
  43. static bool nrf91_errata_10(void) __UNUSED;
  44. static bool nrf91_errata_12(void) __UNUSED;
  45. static bool nrf91_errata_14(void) __UNUSED;
  46. static bool nrf91_errata_15(void) __UNUSED;
  47. static bool nrf91_errata_16(void) __UNUSED;
  48. static bool nrf91_errata_17(void) __UNUSED;
  49. static bool nrf91_errata_20(void) __UNUSED;
  50. static bool nrf91_errata_21(void) __UNUSED;
  51. static bool nrf91_errata_23(void) __UNUSED;
  52. static bool nrf91_errata_24(void) __UNUSED;
  53. static bool nrf91_errata_26(void) __UNUSED;
  54. static bool nrf91_errata_27(void) __UNUSED;
  55. static bool nrf91_errata_28(void) __UNUSED;
  56. static bool nrf91_errata_29(void) __UNUSED;
  57. static bool nrf91_errata_30(void) __UNUSED;
  58. static bool nrf91_errata_31(void) __UNUSED;
  59. static bool nrf91_errata_32(void) __UNUSED;
  60. static bool nrf91_errata_33(void) __UNUSED;
  61. static bool nrf91_errata_1(void)
  62. {
  63. #ifndef NRF91_SERIES
  64. return false;
  65. #else
  66. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  67. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  68. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  69. #endif
  70. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  71. if (var1 == 0x09)
  72. {
  73. switch(var2)
  74. {
  75. case 0x01ul:
  76. return true;
  77. case 0x02ul:
  78. return true;
  79. default:
  80. return true;
  81. }
  82. }
  83. #endif
  84. return false;
  85. #endif
  86. }
  87. static bool nrf91_errata_2(void)
  88. {
  89. #ifndef NRF91_SERIES
  90. return false;
  91. #else
  92. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  93. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  94. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  95. #endif
  96. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  97. if (var1 == 0x09)
  98. {
  99. switch(var2)
  100. {
  101. case 0x01ul:
  102. return true;
  103. case 0x02ul:
  104. return true;
  105. default:
  106. return true;
  107. }
  108. }
  109. #endif
  110. return false;
  111. #endif
  112. }
  113. static bool nrf91_errata_4(void)
  114. {
  115. #ifndef NRF91_SERIES
  116. return false;
  117. #else
  118. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  119. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  120. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  121. #endif
  122. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  123. if (var1 == 0x09)
  124. {
  125. switch(var2)
  126. {
  127. case 0x01ul:
  128. return true;
  129. case 0x02ul:
  130. return true;
  131. default:
  132. return true;
  133. }
  134. }
  135. #endif
  136. return false;
  137. #endif
  138. }
  139. static bool nrf91_errata_6(void)
  140. {
  141. #ifndef NRF91_SERIES
  142. return false;
  143. #else
  144. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  145. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  146. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  147. #endif
  148. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  149. if (var1 == 0x09)
  150. {
  151. switch(var2)
  152. {
  153. case 0x01ul:
  154. return true;
  155. case 0x02ul:
  156. return true;
  157. default:
  158. return true;
  159. }
  160. }
  161. #endif
  162. return false;
  163. #endif
  164. }
  165. static bool nrf91_errata_7(void)
  166. {
  167. #ifndef NRF91_SERIES
  168. return false;
  169. #else
  170. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  171. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  172. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  173. #endif
  174. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  175. if (var1 == 0x09)
  176. {
  177. switch(var2)
  178. {
  179. case 0x01ul:
  180. return true;
  181. case 0x02ul:
  182. return true;
  183. default:
  184. return true;
  185. }
  186. }
  187. #endif
  188. return false;
  189. #endif
  190. }
  191. static bool nrf91_errata_8(void)
  192. {
  193. #ifndef NRF91_SERIES
  194. return false;
  195. #else
  196. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  197. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  198. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  199. #endif
  200. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  201. if (var1 == 0x09)
  202. {
  203. switch(var2)
  204. {
  205. case 0x01ul:
  206. return true;
  207. case 0x02ul:
  208. return false;
  209. default:
  210. return false;
  211. }
  212. }
  213. #endif
  214. return false;
  215. #endif
  216. }
  217. static bool nrf91_errata_9(void)
  218. {
  219. #ifndef NRF91_SERIES
  220. return false;
  221. #else
  222. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  223. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  224. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  225. #endif
  226. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  227. if (var1 == 0x09)
  228. {
  229. switch(var2)
  230. {
  231. case 0x01ul:
  232. return false;
  233. case 0x02ul:
  234. return true;
  235. default:
  236. return true;
  237. }
  238. }
  239. #endif
  240. return false;
  241. #endif
  242. }
  243. static bool nrf91_errata_10(void)
  244. {
  245. #ifndef NRF91_SERIES
  246. return false;
  247. #else
  248. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  249. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  250. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  251. #endif
  252. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  253. if (var1 == 0x09)
  254. {
  255. switch(var2)
  256. {
  257. case 0x01ul:
  258. return true;
  259. case 0x02ul:
  260. return false;
  261. default:
  262. return false;
  263. }
  264. }
  265. #endif
  266. return false;
  267. #endif
  268. }
  269. static bool nrf91_errata_12(void)
  270. {
  271. #ifndef NRF91_SERIES
  272. return false;
  273. #else
  274. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  275. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  276. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  277. #endif
  278. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  279. if (var1 == 0x09)
  280. {
  281. switch(var2)
  282. {
  283. case 0x01ul:
  284. return true;
  285. case 0x02ul:
  286. return false;
  287. default:
  288. return false;
  289. }
  290. }
  291. #endif
  292. return false;
  293. #endif
  294. }
  295. static bool nrf91_errata_14(void)
  296. {
  297. #ifndef NRF91_SERIES
  298. return false;
  299. #else
  300. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  301. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  302. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  303. #endif
  304. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  305. if (var1 == 0x09)
  306. {
  307. switch(var2)
  308. {
  309. case 0x01ul:
  310. return true;
  311. case 0x02ul:
  312. return false;
  313. default:
  314. return false;
  315. }
  316. }
  317. #endif
  318. return false;
  319. #endif
  320. }
  321. static bool nrf91_errata_15(void)
  322. {
  323. #ifndef NRF91_SERIES
  324. return false;
  325. #else
  326. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  327. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  328. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  329. #endif
  330. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  331. if (var1 == 0x09)
  332. {
  333. switch(var2)
  334. {
  335. case 0x01ul:
  336. return false;
  337. case 0x02ul:
  338. return true;
  339. default:
  340. return true;
  341. }
  342. }
  343. #endif
  344. return false;
  345. #endif
  346. }
  347. static bool nrf91_errata_16(void)
  348. {
  349. #ifndef NRF91_SERIES
  350. return false;
  351. #else
  352. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  353. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  354. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  355. #endif
  356. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  357. if (var1 == 0x09)
  358. {
  359. switch(var2)
  360. {
  361. case 0x01ul:
  362. return true;
  363. case 0x02ul:
  364. return false;
  365. default:
  366. return false;
  367. }
  368. }
  369. #endif
  370. return false;
  371. #endif
  372. }
  373. static bool nrf91_errata_17(void)
  374. {
  375. #ifndef NRF91_SERIES
  376. return false;
  377. #else
  378. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  379. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  380. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  381. #endif
  382. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  383. if (var1 == 0x09)
  384. {
  385. switch(var2)
  386. {
  387. case 0x01ul:
  388. return true;
  389. case 0x02ul:
  390. return false;
  391. default:
  392. return false;
  393. }
  394. }
  395. #endif
  396. return false;
  397. #endif
  398. }
  399. static bool nrf91_errata_20(void)
  400. {
  401. #ifndef NRF91_SERIES
  402. return false;
  403. #else
  404. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  405. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  406. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  407. #endif
  408. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  409. if (var1 == 0x09)
  410. {
  411. switch(var2)
  412. {
  413. case 0x01ul:
  414. return true;
  415. case 0x02ul:
  416. return false;
  417. default:
  418. return false;
  419. }
  420. }
  421. #endif
  422. return false;
  423. #endif
  424. }
  425. static bool nrf91_errata_21(void)
  426. {
  427. #ifndef NRF91_SERIES
  428. return false;
  429. #else
  430. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  431. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  432. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  433. #endif
  434. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  435. if (var1 == 0x09)
  436. {
  437. switch(var2)
  438. {
  439. case 0x01ul:
  440. return true;
  441. case 0x02ul:
  442. return true;
  443. default:
  444. return true;
  445. }
  446. }
  447. #endif
  448. return false;
  449. #endif
  450. }
  451. static bool nrf91_errata_23(void)
  452. {
  453. #ifndef NRF91_SERIES
  454. return false;
  455. #else
  456. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  457. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  458. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  459. #endif
  460. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  461. if (var1 == 0x09)
  462. {
  463. switch(var2)
  464. {
  465. case 0x01ul:
  466. return true;
  467. case 0x02ul:
  468. return true;
  469. default:
  470. return true;
  471. }
  472. }
  473. #endif
  474. return false;
  475. #endif
  476. }
  477. static bool nrf91_errata_24(void)
  478. {
  479. #ifndef NRF91_SERIES
  480. return false;
  481. #else
  482. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  483. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  484. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  485. #endif
  486. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  487. if (var1 == 0x09)
  488. {
  489. switch(var2)
  490. {
  491. case 0x01ul:
  492. return true;
  493. case 0x02ul:
  494. return true;
  495. default:
  496. return true;
  497. }
  498. }
  499. #endif
  500. return false;
  501. #endif
  502. }
  503. static bool nrf91_errata_26(void)
  504. {
  505. #ifndef NRF91_SERIES
  506. return false;
  507. #else
  508. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  509. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  510. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  511. #endif
  512. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  513. if (var1 == 0x09)
  514. {
  515. switch(var2)
  516. {
  517. case 0x01ul:
  518. return true;
  519. case 0x02ul:
  520. return true;
  521. default:
  522. return true;
  523. }
  524. }
  525. #endif
  526. return false;
  527. #endif
  528. }
  529. static bool nrf91_errata_27(void)
  530. {
  531. #ifndef NRF91_SERIES
  532. return false;
  533. #else
  534. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  535. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  536. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  537. #endif
  538. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  539. if (var1 == 0x09)
  540. {
  541. switch(var2)
  542. {
  543. case 0x01ul:
  544. return false;
  545. case 0x02ul:
  546. return true;
  547. default:
  548. return true;
  549. }
  550. }
  551. #endif
  552. return false;
  553. #endif
  554. }
  555. static bool nrf91_errata_28(void)
  556. {
  557. #ifndef NRF91_SERIES
  558. return false;
  559. #else
  560. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  561. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  562. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  563. #endif
  564. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  565. if (var1 == 0x09)
  566. {
  567. switch(var2)
  568. {
  569. case 0x01ul:
  570. return true;
  571. case 0x02ul:
  572. return true;
  573. default:
  574. return true;
  575. }
  576. }
  577. #endif
  578. return false;
  579. #endif
  580. }
  581. static bool nrf91_errata_29(void)
  582. {
  583. #ifndef NRF91_SERIES
  584. return false;
  585. #else
  586. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  587. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  588. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  589. #endif
  590. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  591. if (var1 == 0x09)
  592. {
  593. switch(var2)
  594. {
  595. case 0x01ul:
  596. return true;
  597. case 0x02ul:
  598. return true;
  599. default:
  600. return true;
  601. }
  602. }
  603. #endif
  604. return false;
  605. #endif
  606. }
  607. static bool nrf91_errata_30(void)
  608. {
  609. #ifndef NRF91_SERIES
  610. return false;
  611. #else
  612. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  613. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  614. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  615. #endif
  616. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  617. if (var1 == 0x09)
  618. {
  619. switch(var2)
  620. {
  621. case 0x01ul:
  622. return true;
  623. case 0x02ul:
  624. return true;
  625. default:
  626. return true;
  627. }
  628. }
  629. #endif
  630. return false;
  631. #endif
  632. }
  633. static bool nrf91_errata_31(void)
  634. {
  635. #ifndef NRF91_SERIES
  636. return false;
  637. #else
  638. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  639. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  640. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  641. #endif
  642. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  643. if (var1 == 0x09)
  644. {
  645. switch(var2)
  646. {
  647. case 0x01ul:
  648. return true;
  649. case 0x02ul:
  650. return true;
  651. default:
  652. return true;
  653. }
  654. }
  655. #endif
  656. return false;
  657. #endif
  658. }
  659. static bool nrf91_errata_32(void)
  660. {
  661. #ifndef NRF91_SERIES
  662. return false;
  663. #else
  664. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  665. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  666. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  667. #endif
  668. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  669. if (var1 == 0x09)
  670. {
  671. switch(var2)
  672. {
  673. case 0x01ul:
  674. return true;
  675. case 0x02ul:
  676. return true;
  677. default:
  678. return true;
  679. }
  680. }
  681. #endif
  682. return false;
  683. #endif
  684. }
  685. static bool nrf91_errata_33(void)
  686. {
  687. #ifndef NRF91_SERIES
  688. return false;
  689. #else
  690. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  691. uint32_t var1 = *(uint32_t *)0x00FF0130ul;
  692. uint32_t var2 = *(uint32_t *)0x00FF0134ul;
  693. #endif
  694. #if defined (NRF9160_XXAA) || defined (DEVELOP_IN_NRF9160)
  695. if (var1 == 0x09)
  696. {
  697. switch(var2)
  698. {
  699. case 0x01ul:
  700. return true;
  701. case 0x02ul:
  702. return true;
  703. default:
  704. return true;
  705. }
  706. }
  707. #endif
  708. return false;
  709. #endif
  710. }
  711. #endif /* NRF91_ERRATAS_H */