xref: /linux/include/sound/sdca_asoc.h (revision e78f70bad29c5ae1e1076698b690b15794e9b81e)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * The MIPI SDCA specification is available for public downloads at
4  * https://www.mipi.org/mipi-sdca-v1-0-download
5  *
6  * Copyright (C) 2025 Cirrus Logic, Inc. and
7  *                    Cirrus Logic International Semiconductor Ltd.
8  */
9 
10 #ifndef __SDCA_ASOC_H__
11 #define __SDCA_ASOC_H__
12 
13 struct device;
14 struct sdca_function_data;
15 struct snd_kcontrol_new;
16 struct snd_soc_component_driver;
17 struct snd_soc_dai_driver;
18 struct snd_soc_dai_ops;
19 struct snd_soc_dapm_route;
20 struct snd_soc_dapm_widget;
21 
22 int sdca_asoc_count_component(struct device *dev, struct sdca_function_data *function,
23 			      int *num_widgets, int *num_routes, int *num_controls,
24 			      int *num_dais);
25 
26 int sdca_asoc_populate_dapm(struct device *dev, struct sdca_function_data *function,
27 			    struct snd_soc_dapm_widget *widgets,
28 			    struct snd_soc_dapm_route *routes);
29 int sdca_asoc_populate_controls(struct device *dev,
30 				struct sdca_function_data *function,
31 				struct snd_kcontrol_new *kctl);
32 int sdca_asoc_populate_dais(struct device *dev, struct sdca_function_data *function,
33 			    struct snd_soc_dai_driver *dais,
34 			    const struct snd_soc_dai_ops *ops);
35 
36 int sdca_asoc_populate_component(struct device *dev,
37 				 struct sdca_function_data *function,
38 				 struct snd_soc_component_driver *component_drv,
39 				 struct snd_soc_dai_driver **dai_drv, int *num_dai_drv,
40 				 const struct snd_soc_dai_ops *ops);
41 
42 #endif // __SDCA_ASOC_H__
43