|
@@ -196,7 +196,11 @@ int asoc_simple_card_parse_clk(struct device *dev,
|
|
simple_dai->sysclk = clk_get_rate(clk);
|
|
simple_dai->sysclk = clk_get_rate(clk);
|
|
}
|
|
}
|
|
|
|
|
|
- dev_dbg(dev, "%s : sysclk = %d\n", name, simple_dai->sysclk);
|
|
|
|
|
|
+ if (of_property_read_bool(node, "system-clock-direction-out"))
|
|
|
|
+ simple_dai->clk_direction = SND_SOC_CLOCK_OUT;
|
|
|
|
+
|
|
|
|
+ dev_dbg(dev, "%s : sysclk = %d, direction %d\n", name,
|
|
|
|
+ simple_dai->sysclk, simple_dai->clk_direction);
|
|
|
|
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
@@ -310,7 +314,8 @@ int asoc_simple_card_init_dai(struct snd_soc_dai *dai,
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
if (simple_dai->sysclk) {
|
|
if (simple_dai->sysclk) {
|
|
- ret = snd_soc_dai_set_sysclk(dai, 0, simple_dai->sysclk, 0);
|
|
|
|
|
|
+ ret = snd_soc_dai_set_sysclk(dai, 0, simple_dai->sysclk,
|
|
|
|
+ simple_dai->clk_direction);
|
|
if (ret && ret != -ENOTSUPP) {
|
|
if (ret && ret != -ENOTSUPP) {
|
|
dev_err(dai->dev, "simple-card: set_sysclk error\n");
|
|
dev_err(dai->dev, "simple-card: set_sysclk error\n");
|
|
return ret;
|
|
return ret;
|