55 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2/*3 * Copyright (c) 2020 BayLibre, SAS.4 * Author: Jerome Brunet <jbrunet@baylibre.com>5 */6 7#ifndef _MESON_SND_CARD_H8#define _MESON_SND_CARD_H9 10struct device_node;11struct platform_device;12 13struct snd_soc_card;14struct snd_pcm_substream;15struct snd_pcm_hw_params;16 17#define DT_PREFIX "amlogic,"18 19struct meson_card_match_data {20 int (*add_link)(struct snd_soc_card *card,21 struct device_node *node,22 int *index);23};24 25struct meson_card {26 const struct meson_card_match_data *match_data;27 struct snd_soc_card card;28 void **link_data;29};30 31unsigned int meson_card_parse_daifmt(struct device_node *node,32 struct device_node *cpu_node);33 34int meson_card_i2s_set_sysclk(struct snd_pcm_substream *substream,35 struct snd_pcm_hw_params *params,36 unsigned int mclk_fs);37 38int meson_card_reallocate_links(struct snd_soc_card *card,39 unsigned int num_links);40int meson_card_parse_dai(struct snd_soc_card *card,41 struct device_node *node,42 struct snd_soc_dai_link_component *dlc);43int meson_card_set_be_link(struct snd_soc_card *card,44 struct snd_soc_dai_link *link,45 struct device_node *node);46int meson_card_set_fe_link(struct snd_soc_card *card,47 struct snd_soc_dai_link *link,48 struct device_node *node,49 bool is_playback);50 51int meson_card_probe(struct platform_device *pdev);52void meson_card_remove(struct platform_device *pdev);53 54#endif /* _MESON_SND_CARD_H */55