xref: /linux/include/sound/graph_card.h (revision 24bce201d79807b668bf9d9e0aca801c5c0d5f78)
1 /* SPDX-License-Identifier: GPL-2.0
2  *
3  * ASoC audio graph card support
4  *
5  */
6 
7 #ifndef __GRAPH_CARD_H
8 #define __GRAPH_CARD_H
9 
10 #include <sound/simple_card_utils.h>
11 
12 typedef int (*GRAPH2_CUSTOM)(struct asoc_simple_priv *priv,
13 			     struct device_node *lnk,
14 			     struct link_info *li);
15 
16 struct graph2_custom_hooks {
17 	int (*hook_pre)(struct asoc_simple_priv *priv);
18 	int (*hook_post)(struct asoc_simple_priv *priv);
19 	GRAPH2_CUSTOM custom_normal;
20 	GRAPH2_CUSTOM custom_dpcm;
21 	GRAPH2_CUSTOM custom_c2c;
22 };
23 
24 int audio_graph_parse_of(struct asoc_simple_priv *priv, struct device *dev);
25 int audio_graph2_parse_of(struct asoc_simple_priv *priv, struct device *dev,
26 			  struct graph2_custom_hooks *hooks);
27 
28 int audio_graph2_link_normal(struct asoc_simple_priv *priv,
29 			     struct device_node *lnk, struct link_info *li);
30 int audio_graph2_link_dpcm(struct asoc_simple_priv *priv,
31 			   struct device_node *lnk, struct link_info *li);
32 int audio_graph2_link_c2c(struct asoc_simple_priv *priv,
33 			  struct device_node *lnk, struct link_info *li);
34 
35 #endif /* __GRAPH_CARD_H */
36