1 /*
2  * Copyright (c) 2024 Cienet
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #include <zephyr/kernel.h>
8 #include <zephyr/drivers/sensor_clock.h>
9 #include <zephyr/sys_clock.h>
10 
sensor_clock_get_cycles(uint64_t * cycles)11 int sensor_clock_get_cycles(uint64_t *cycles)
12 {
13 	if (cycles == NULL) {
14 		return -EINVAL;
15 	}
16 
17 #ifdef CONFIG_TIMER_HAS_64BIT_CYCLE_COUNTER
18 	*cycles = k_cycle_get_64();
19 #else
20 	*cycles = (uint64_t)k_cycle_get_32();
21 #endif
22 
23 	return 0;
24 }
25 
sensor_clock_cycles_to_ns(uint64_t cycles)26 uint64_t sensor_clock_cycles_to_ns(uint64_t cycles)
27 {
28 	return (cycles * NSEC_PER_SEC) / sys_clock_hw_cycles_per_sec();
29 }
30