162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * mtk-dsp-sof-common.h  --  MediaTek dsp sof common definition
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (c) 2022 MediaTek Inc.
662306a36Sopenharmony_ci * Author: Chunxu Li <chunxu.li@mediatek.com>
762306a36Sopenharmony_ci */
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#ifndef _MTK_DSP_SOF_COMMON_H_
1062306a36Sopenharmony_ci#define _MTK_DSP_SOF_COMMON_H_
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci#include <sound/soc.h>
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_cistruct sof_conn_stream {
1562306a36Sopenharmony_ci	const char *normal_link;
1662306a36Sopenharmony_ci	const char *sof_link;
1762306a36Sopenharmony_ci	const char *sof_dma;
1862306a36Sopenharmony_ci	int stream_dir;
1962306a36Sopenharmony_ci};
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_cistruct mtk_sof_priv {
2262306a36Sopenharmony_ci	const struct sof_conn_stream *conn_streams;
2362306a36Sopenharmony_ci	int num_streams;
2462306a36Sopenharmony_ci	int (*sof_dai_link_fixup)(struct snd_soc_pcm_runtime *rtd,
2562306a36Sopenharmony_ci				  struct snd_pcm_hw_params *params);
2662306a36Sopenharmony_ci};
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ciint mtk_sof_dai_link_fixup(struct snd_soc_pcm_runtime *rtd,
2962306a36Sopenharmony_ci			   struct snd_pcm_hw_params *params);
3062306a36Sopenharmony_ciint mtk_sof_card_probe(struct snd_soc_card *card);
3162306a36Sopenharmony_ciint mtk_sof_card_late_probe(struct snd_soc_card *card);
3262306a36Sopenharmony_ciint mtk_sof_dailink_parse_of(struct snd_soc_card *card, struct device_node *np,
3362306a36Sopenharmony_ci			     const char *propname, struct snd_soc_dai_link *pre_dai_links,
3462306a36Sopenharmony_ci			     int pre_num_links);
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci#endif
37