1 /*
2  * Copyright (c) 2016 - 2023, Nordic Semiconductor ASA
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 /* This file is undergoing transition towards native Zephyr nrf USB driver. */
8 
9 /** @cond INTERNAL_HIDDEN */
10 
11 #ifndef NRF_USBD_COMMON_ERRATA_H__
12 #define NRF_USBD_COMMON_ERRATA_H__
13 
14 #include <nrfx.h>
15 #include <nrf_erratas.h>
16 
17 #ifndef NRF_USBD_COMMON_ERRATA_ENABLE
18 /**
19  * @brief The constant that informs if errata should be enabled at all.
20  *
21  * If this constant is set to 0, all the Errata bug fixes will be automatically disabled.
22  */
23 #define NRF_USBD_COMMON_ERRATA_ENABLE 1
24 #endif
25 
26 /* Errata: ISO double buffering not functional. **/
nrf_usbd_common_errata_166(void)27 static inline bool nrf_usbd_common_errata_166(void)
28 {
29 	return NRF_USBD_COMMON_ERRATA_ENABLE && nrf52_errata_166();
30 }
31 
32 /* Errata: USBD might not reach its active state. **/
nrf_usbd_common_errata_171(void)33 static inline bool nrf_usbd_common_errata_171(void)
34 {
35 	return NRF_USBD_COMMON_ERRATA_ENABLE && nrf52_errata_171();
36 }
37 
38 /* Errata: USB cannot be enabled. **/
nrf_usbd_common_errata_187(void)39 static inline bool nrf_usbd_common_errata_187(void)
40 {
41 	return NRF_USBD_COMMON_ERRATA_ENABLE && nrf52_errata_187();
42 }
43 
44 /* Errata: USBD cannot receive tasks during DMA. **/
nrf_usbd_common_errata_199(void)45 static inline bool nrf_usbd_common_errata_199(void)
46 {
47 	return NRF_USBD_COMMON_ERRATA_ENABLE && nrf52_errata_199();
48 }
49 
50 /* Errata: Device remains in SUSPEND too long. */
nrf_usbd_common_errata_211(void)51 static inline bool nrf_usbd_common_errata_211(void)
52 {
53 	return NRF_USBD_COMMON_ERRATA_ENABLE && nrf52_errata_211();
54 }
55 
56 /* Errata: Unexpected behavior after reset. **/
nrf_usbd_common_errata_223(void)57 static inline bool nrf_usbd_common_errata_223(void)
58 {
59 	return NRF_USBD_COMMON_ERRATA_ENABLE && nrf52_errata_223();
60 }
61 
62 #endif /* NRF_USBD_COMMON_ERRATA_H__ */
63 
64 /** @endcond */
65