/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (c) 2020 BayLibre, SAS. * Author: Jerome Brunet */ #ifndef _MESON_SND_CARD_H #define _MESON_SND_CARD_H struct device_node; struct platform_device; struct snd_soc_card; struct snd_pcm_substream; struct snd_pcm_hw_params; #define DT_PREFIX "amlogic," struct meson_card_match_data { int (*add_link)(struct snd_soc_card *card, struct device_node *node, int *index); }; struct meson_card { const struct meson_card_match_data *match_data; struct snd_soc_card card; void **link_data; }; unsigned int meson_card_parse_daifmt(struct device_node *node, struct device_node *cpu_node); int meson_card_i2s_set_sysclk(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params, unsigned int mclk_fs); int meson_card_reallocate_links(struct snd_soc_card *card, unsigned int num_links); int meson_card_parse_dai(struct snd_soc_card *card, struct device_node *node, struct snd_soc_dai_link_component *dlc); int meson_card_set_be_link(struct snd_soc_card *card, struct snd_soc_dai_link *link, struct device_node *node); int meson_card_set_fe_link(struct snd_soc_card *card, struct snd_soc_dai_link *link, struct device_node *node, bool is_playback); int meson_card_probe(struct platform_device *pdev); void meson_card_remove(struct platform_device *pdev); #endif /* _MESON_SND_CARD_H */