ASoC: simple-card-utils: add asoc_simple_card_init_dai()
[deliverable/linux.git] / sound / soc / generic / simple-card-utils.c
index 27e6d038a9027104a12c01be878fc6aff4a94f8b..33abe1f7014e898f5e689d3536b462d91efcd9b6 100644 (file)
@@ -164,6 +164,35 @@ int asoc_simple_card_parse_dai(struct device_node *node,
 }
 EXPORT_SYMBOL_GPL(asoc_simple_card_parse_dai);
 
+int asoc_simple_card_init_dai(struct snd_soc_dai *dai,
+                             struct asoc_simple_dai *simple_dai)
+{
+       int ret;
+
+       if (simple_dai->sysclk) {
+               ret = snd_soc_dai_set_sysclk(dai, 0, simple_dai->sysclk, 0);
+               if (ret && ret != -ENOTSUPP) {
+                       dev_err(dai->dev, "simple-card: set_sysclk error\n");
+                       return ret;
+               }
+       }
+
+       if (simple_dai->slots) {
+               ret = snd_soc_dai_set_tdm_slot(dai,
+                                              simple_dai->tx_slot_mask,
+                                              simple_dai->rx_slot_mask,
+                                              simple_dai->slots,
+                                              simple_dai->slot_width);
+               if (ret && ret != -ENOTSUPP) {
+                       dev_err(dai->dev, "simple-card: set_tdm_slot error\n");
+                       return ret;
+               }
+       }
+
+       return 0;
+}
+EXPORT_SYMBOL_GPL(asoc_simple_card_init_dai);
+
 /* Module information */
 MODULE_AUTHOR("Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>");
 MODULE_DESCRIPTION("ALSA SoC Simple Card Utils");
This page took 0.091973 seconds and 5 git commands to generate.