Sound Open Firmware
Loading...
Searching...
No Matches
wait.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 *
3 * Copyright(c) 2022 Intel Corporation. All rights reserved.
4 *
5 * Author: Liam Girdwood <liam.r.girdwood@linux.intel.com>
6 */
7
8#ifndef __ZEPHYR_RTOS_WAIT_H__
9#define __ZEPHYR_RTOS_WAIT_H__
10
11#include <stdint.h>
12#include <stdbool.h>
13#include <zephyr/kernel.h>
14#include <zephyr/sys/time_units.h>
15#include <rtos/timer.h>
16
17static inline void wait_delay_us(uint64_t us)
18{
19 k_busy_wait(us);
20}
21
22static inline void wait_delay(uint64_t number_of_clks)
23{
24 k_busy_wait(k_cyc_to_us_floor64(number_of_clks));
25}
26
27static inline void wait_delay_ms(uint64_t ms)
28{
29 k_busy_wait(ms * 1000);
30}
31
32int poll_for_register_delay(uint32_t reg, uint32_t mask,
33 uint32_t val, uint64_t us);
34
35/* TODO: this is tmp used by some IMX IPC drivers that have not transitioned
36 * to Zephyr. To be removed after drivers migrated to Zephyr. It's xtensa only too.
37 */
38static inline void wait_for_interrupt(int level)
39{
40 __asm__ volatile("waiti 0");
41}
42
43#endif /* __ZEPHYR_RTOS_WAIT_H__ */
static void wait_for_interrupt(int level)
Definition wait.h:38
static void wait_delay_us(uint64_t us)
Definition wait.h:17
int poll_for_register_delay(uint32_t reg, uint32_t mask, uint32_t val, uint64_t us)
static void wait_delay(uint64_t number_of_clks)
Definition wait.h:22
static void wait_delay_ms(uint64_t ms)
Definition wait.h:27