1 /*
2  * Copyright (c) 2018, Nordic Semiconductor ASA
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #include <nrfx.h>
8 #include <zephyr/kernel.h>
9 #include <soc/nrfx_coredep.h>
10 
nrfx_isr(const void * irq_handler)11 void nrfx_isr(const void *irq_handler)
12 {
13 	((nrfx_irq_handler_t)irq_handler)();
14 }
15 
nrfx_busy_wait(uint32_t usec_to_wait)16 void nrfx_busy_wait(uint32_t usec_to_wait)
17 {
18 	if (IS_ENABLED(CONFIG_SYS_CLOCK_EXISTS)) {
19 		k_busy_wait(usec_to_wait);
20 	} else {
21 		nrfx_coredep_delay_us(usec_to_wait);
22 	}
23 }
24 
nrfx_error_string_get(nrfx_err_t code)25 char const *nrfx_error_string_get(nrfx_err_t code)
26 {
27 	#define NRFX_ERROR_STRING_CASE(code)  case code: return #code
28 	switch (code) {
29 		NRFX_ERROR_STRING_CASE(NRFX_SUCCESS);
30 		NRFX_ERROR_STRING_CASE(NRFX_ERROR_INTERNAL);
31 		NRFX_ERROR_STRING_CASE(NRFX_ERROR_NO_MEM);
32 		NRFX_ERROR_STRING_CASE(NRFX_ERROR_NOT_SUPPORTED);
33 		NRFX_ERROR_STRING_CASE(NRFX_ERROR_INVALID_PARAM);
34 		NRFX_ERROR_STRING_CASE(NRFX_ERROR_INVALID_STATE);
35 		NRFX_ERROR_STRING_CASE(NRFX_ERROR_INVALID_LENGTH);
36 		NRFX_ERROR_STRING_CASE(NRFX_ERROR_TIMEOUT);
37 		NRFX_ERROR_STRING_CASE(NRFX_ERROR_FORBIDDEN);
38 		NRFX_ERROR_STRING_CASE(NRFX_ERROR_NULL);
39 		NRFX_ERROR_STRING_CASE(NRFX_ERROR_INVALID_ADDR);
40 		NRFX_ERROR_STRING_CASE(NRFX_ERROR_BUSY);
41 		NRFX_ERROR_STRING_CASE(NRFX_ERROR_ALREADY_INITIALIZED);
42 		NRFX_ERROR_STRING_CASE(NRFX_ERROR_DRV_TWI_ERR_OVERRUN);
43 		NRFX_ERROR_STRING_CASE(NRFX_ERROR_DRV_TWI_ERR_ANACK);
44 		NRFX_ERROR_STRING_CASE(NRFX_ERROR_DRV_TWI_ERR_DNACK);
45 		default: return "unknown";
46 	}
47 }
48