18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci *
38c2ecf20Sopenharmony_ci * Copyright (c) 2018 Baylibre SAS.
48c2ecf20Sopenharmony_ci * Author: Jerome Brunet <jbrunet@baylibre.com>
58c2ecf20Sopenharmony_ci */
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci#ifndef _MESON_CODEC_GLUE_H
88c2ecf20Sopenharmony_ci#define _MESON_CODEC_GLUE_H
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci#include <sound/soc.h>
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_cistruct meson_codec_glue_input {
138c2ecf20Sopenharmony_ci	struct snd_soc_pcm_stream params;
148c2ecf20Sopenharmony_ci	unsigned int fmt;
158c2ecf20Sopenharmony_ci};
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci/* Input helpers */
188c2ecf20Sopenharmony_cistruct meson_codec_glue_input *
198c2ecf20Sopenharmony_cimeson_codec_glue_input_get_data(struct snd_soc_dai *dai);
208c2ecf20Sopenharmony_ciint meson_codec_glue_input_hw_params(struct snd_pcm_substream *substream,
218c2ecf20Sopenharmony_ci				     struct snd_pcm_hw_params *params,
228c2ecf20Sopenharmony_ci				     struct snd_soc_dai *dai);
238c2ecf20Sopenharmony_ciint meson_codec_glue_input_set_fmt(struct snd_soc_dai *dai,
248c2ecf20Sopenharmony_ci				   unsigned int fmt);
258c2ecf20Sopenharmony_ciint meson_codec_glue_input_dai_probe(struct snd_soc_dai *dai);
268c2ecf20Sopenharmony_ciint meson_codec_glue_input_dai_remove(struct snd_soc_dai *dai);
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci/* Output helpers */
298c2ecf20Sopenharmony_ciint meson_codec_glue_output_startup(struct snd_pcm_substream *substream,
308c2ecf20Sopenharmony_ci				    struct snd_soc_dai *dai);
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci#endif /* _MESON_CODEC_GLUE_H */
33