1 /* Copyright 2023 The ChromiumOS Authors
2  * SPDX-License-Identifier: Apache-2.0
3  */
4 
5 #ifndef ZEPHYR_SOC_MTK_SOC_H
6 #define ZEPHYR_SOC_MTK_SOC_H
7 
8 #include <zephyr/device.h>
9 
10 void mtk_adsp_cpu_freq_init(void);
11 void mtk_adsp_set_cpu_freq(int mhz);
12 
13 /* Mailbox Driver: */
14 
15 /* Hardware defines multiple "channel" bits that can be independently
16  * signaled and cleared.  An interrupt is latched if any bits are
17  * set.
18  */
19 #define MTK_ADSP_MBOX_CHANNELS 5
20 
21 typedef void (*mtk_adsp_mbox_handler_t)(const struct device *mbox, void *arg);
22 
23 void mtk_adsp_mbox_set_handler(const struct device *mbox, uint32_t chan,
24 			       mtk_adsp_mbox_handler_t handler, void *arg);
25 
26 /* Signal an interrupt on the specified channel for the other side */
27 void mtk_adsp_mbox_signal(const struct device *mbox, uint32_t chan);
28 
29 #endif /* ZEPHYR_SOC_MTK_SOC_H */
30