1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * mtk-dsp-sof-common.h  --  MediaTek dsp sof common definition
4 *
5 * Copyright (c) 2022 MediaTek Inc.
6 * Author: Chunxu Li <chunxu.li@mediatek.com>
7 */
8
9#ifndef _MTK_DSP_SOF_COMMON_H_
10#define _MTK_DSP_SOF_COMMON_H_
11
12#include <sound/soc.h>
13
14struct sof_conn_stream {
15	const char *normal_link;
16	const char *sof_link;
17	const char *sof_dma;
18	int stream_dir;
19};
20
21struct mtk_dai_link {
22	const char *name;
23	int (*be_hw_params_fixup)(struct snd_soc_pcm_runtime *rtd,
24				  struct snd_pcm_hw_params *params);
25	struct list_head list;
26};
27
28struct mtk_sof_priv {
29	const struct sof_conn_stream *conn_streams;
30	int num_streams;
31	int (*sof_dai_link_fixup)(struct snd_soc_pcm_runtime *rtd,
32				  struct snd_pcm_hw_params *params);
33	struct list_head dai_link_list;
34};
35
36int mtk_sof_dai_link_fixup(struct snd_soc_pcm_runtime *rtd,
37			   struct snd_pcm_hw_params *params);
38int mtk_sof_card_probe(struct snd_soc_card *card);
39int mtk_sof_card_late_probe(struct snd_soc_card *card);
40int mtk_sof_dailink_parse_of(struct snd_soc_card *card, struct device_node *np,
41			     const char *propname, struct snd_soc_dai_link *pre_dai_links,
42			     int pre_num_links);
43
44#endif
45