ret = snd_soc_dai_set_pll(codec_dai, WM8904_FLL_MCLK, WM8904_FLL_MCLK,
32768, params_rate(params) * 256); if (ret < 0) {
pr_err("%s - failed to set wm8904 codec PLL.", __func__); return ret;
}
/* * As here wm8904 use FLL output as its system clock * so calling set_sysclk won't care freq parameter * then we pass 0
*/
ret = snd_soc_dai_set_sysclk(codec_dai, WM8904_CLK_FLL,
0, SND_SOC_CLOCK_IN); if (ret < 0) {
pr_err("%s -failed to set wm8904 SYSCLK\n", __func__); return ret;
}
if (!np) {
dev_err(&pdev->dev, "only device tree supported\n"); return -EINVAL;
}
ret = snd_soc_of_parse_card_name(card, "atmel,model"); if (ret) {
dev_err(&pdev->dev, "failed to parse card name\n"); return ret;
}
ret = snd_soc_of_parse_audio_routing(card, "atmel,audio-routing"); if (ret) {
dev_err(&pdev->dev, "failed to parse audio routing\n"); return ret;
}
cpu_np = of_parse_phandle(np, "atmel,ssc-controller", 0); if (!cpu_np) {
dev_err(&pdev->dev, "failed to get dai and pcm info\n");
ret = -EINVAL; return ret;
}
dailink->cpus->of_node = cpu_np;
dailink->platforms->of_node = cpu_np;
of_node_put(cpu_np);
codec_np = of_parse_phandle(np, "atmel,audio-codec", 0); if (!codec_np) {
dev_err(&pdev->dev, "failed to get codec info\n");
ret = -EINVAL; return ret;
}
dailink->codecs->of_node = codec_np;
of_node_put(codec_np);
card->dev = &pdev->dev;
ret = atmel_asoc_wm8904_dt_init(pdev); if (ret) {
dev_err(&pdev->dev, "failed to init dt info\n"); return ret;
}
id = of_alias_get_id((struct device_node *)dailink->cpus->of_node, "ssc");
ret = atmel_ssc_set_audio(id); if (ret != 0) {
dev_err(&pdev->dev, "failed to set SSC %d for audio\n", id); return ret;
}
ret = snd_soc_register_card(card); if (ret) {
dev_err(&pdev->dev, "snd_soc_register_card failed\n"); goto err_set_audio;
}
/* Module information */
MODULE_AUTHOR("Bo Shen ");
MODULE_DESCRIPTION("ALSA SoC machine driver for Atmel EK with WM8904 codec");
MODULE_LICENSE("GPL");
Messung V0.5
¤ Dauer der Verarbeitung: 0.16 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.