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