1e32b100bSSameer Pujar /* SPDX-License-Identifier: GPL-2.0 2e32b100bSSameer Pujar * 3e32b100bSSameer Pujar * ASoC audio graph card support 4e32b100bSSameer Pujar * 5e32b100bSSameer Pujar */ 6e32b100bSSameer Pujar 7e32b100bSSameer Pujar #ifndef __GRAPH_CARD_H 8e32b100bSSameer Pujar #define __GRAPH_CARD_H 9e32b100bSSameer Pujar 10e32b100bSSameer Pujar #include <sound/simple_card_utils.h> 11e32b100bSSameer Pujar 126e5f68feSKuninori Morimoto typedef int (*GRAPH2_CUSTOM)(struct asoc_simple_priv *priv, 136e5f68feSKuninori Morimoto struct device_node *lnk, 146e5f68feSKuninori Morimoto struct link_info *li); 156e5f68feSKuninori Morimoto 166e5f68feSKuninori Morimoto struct graph2_custom_hooks { 176e5f68feSKuninori Morimoto int (*hook_pre)(struct asoc_simple_priv *priv); 186e5f68feSKuninori Morimoto int (*hook_post)(struct asoc_simple_priv *priv); 196e5f68feSKuninori Morimoto GRAPH2_CUSTOM custom_normal; 20f03beb55SKuninori Morimoto GRAPH2_CUSTOM custom_dpcm; 21*c3a15c92SKuninori Morimoto GRAPH2_CUSTOM custom_c2c; 226e5f68feSKuninori Morimoto }; 236e5f68feSKuninori Morimoto 246e4ea8aaSSameer Pujar int audio_graph_parse_of(struct asoc_simple_priv *priv, struct device *dev); 256e5f68feSKuninori Morimoto int audio_graph2_parse_of(struct asoc_simple_priv *priv, struct device *dev, 266e5f68feSKuninori Morimoto struct graph2_custom_hooks *hooks); 276e5f68feSKuninori Morimoto 286e5f68feSKuninori Morimoto int audio_graph2_link_normal(struct asoc_simple_priv *priv, 296e5f68feSKuninori Morimoto struct device_node *lnk, struct link_info *li); 30f03beb55SKuninori Morimoto int audio_graph2_link_dpcm(struct asoc_simple_priv *priv, 31f03beb55SKuninori Morimoto struct device_node *lnk, struct link_info *li); 32*c3a15c92SKuninori Morimoto int audio_graph2_link_c2c(struct asoc_simple_priv *priv, 33*c3a15c92SKuninori Morimoto struct device_node *lnk, struct link_info *li); 346e4ea8aaSSameer Pujar 35e32b100bSSameer Pujar #endif /* __GRAPH_CARD_H */ 36