/* * Logic for a wm8731 as connected on a at91sam9x5ek based board.
*/ staticint sam9x5_wm8731_init(struct snd_soc_pcm_runtime *rtd)
{ struct snd_soc_dai *codec_dai = snd_soc_rtd_to_codec(rtd, 0); struct device *dev = rtd->dev; int ret;
dev_dbg(dev, "%s called\n", __func__);
/* set the codec system clock for DAC and ADC */
ret = snd_soc_dai_set_sysclk(codec_dai, WM8731_SYSCLK_XTAL,
MCLK_RATE, SND_SOC_CLOCK_IN); if (ret < 0) {
dev_err(dev, "Failed to set WM8731 SYSCLK: %d\n", ret); return ret;
}
return 0;
}
/* * Audio paths on at91sam9x5ek board: * * |A| ------------> | | ---R----> Headphone Jack * |T| <----\ | WM | ---L--/ * |9| ---> CLK <--> | 8731 | <--R----- Line In Jack * |1| <------------ | | <--L--/
*/ staticconststruct snd_soc_dapm_widget sam9x5_dapm_widgets[] = {
SND_SOC_DAPM_HP("Headphone Jack", NULL),
SND_SOC_DAPM_LINE("Line In Jack", NULL),
};
ret = atmel_ssc_set_audio(priv->ssc_id); if (ret != 0) {
dev_err(&pdev->dev, "Failed to set SSC %d for audio: %d\n",
ret, priv->ssc_id); goto out_put_cpu_np;
}
ret = devm_snd_soc_register_card(&pdev->dev, card); if (ret) {
dev_err(&pdev->dev, "Platform device allocation failed\n"); goto out_put_audio;
}
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.