19c29fd9bSJerome Brunet /* SPDX-License-Identifier: GPL-2.0
29c29fd9bSJerome Brunet  *
39c29fd9bSJerome Brunet  * Copyright (c) 2018 Baylibre SAS.
49c29fd9bSJerome Brunet  * Author: Jerome Brunet <jbrunet@baylibre.com>
59c29fd9bSJerome Brunet  */
69c29fd9bSJerome Brunet 
79c29fd9bSJerome Brunet #ifndef _MESON_CODEC_GLUE_H
89c29fd9bSJerome Brunet #define _MESON_CODEC_GLUE_H
99c29fd9bSJerome Brunet 
109c29fd9bSJerome Brunet #include <sound/soc.h>
119c29fd9bSJerome Brunet 
129c29fd9bSJerome Brunet struct meson_codec_glue_input {
139c29fd9bSJerome Brunet 	struct snd_soc_pcm_stream params;
149c29fd9bSJerome Brunet 	unsigned int fmt;
159c29fd9bSJerome Brunet };
169c29fd9bSJerome Brunet 
179c29fd9bSJerome Brunet /* Input helpers */
189c29fd9bSJerome Brunet struct meson_codec_glue_input *
199c29fd9bSJerome Brunet meson_codec_glue_input_get_data(struct snd_soc_dai *dai);
209c29fd9bSJerome Brunet int meson_codec_glue_input_hw_params(struct snd_pcm_substream *substream,
219c29fd9bSJerome Brunet 				     struct snd_pcm_hw_params *params,
229c29fd9bSJerome Brunet 				     struct snd_soc_dai *dai);
239c29fd9bSJerome Brunet int meson_codec_glue_input_set_fmt(struct snd_soc_dai *dai,
249c29fd9bSJerome Brunet 				   unsigned int fmt);
259c29fd9bSJerome Brunet int meson_codec_glue_input_dai_probe(struct snd_soc_dai *dai);
269c29fd9bSJerome Brunet int meson_codec_glue_input_dai_remove(struct snd_soc_dai *dai);
279c29fd9bSJerome Brunet 
289c29fd9bSJerome Brunet /* Output helpers */
299c29fd9bSJerome Brunet int meson_codec_glue_output_startup(struct snd_pcm_substream *substream,
309c29fd9bSJerome Brunet 				    struct snd_soc_dai *dai);
319c29fd9bSJerome Brunet 
329c29fd9bSJerome Brunet #endif /* _MESON_CODEC_GLUE_H */
33