声卡驱动dts.
======
wm8960:wm8960@1a{
compatible="wlf,wm8960";
reg = <0x1a>;
};
i2s0:i2s@03830000 {
compatible = "samsung,exynos4412-i2s";
reg = <0x03830000 0x100>;
dmas = <&pdma0 10
&pdma0 9
&pdma0 8>;
dma-names = "tx", "rx", "tx-sec";
clocks = <&clock_audss EXYNOS_I2S_BUS>,
<&clock_audss EXYNOS_I2S_BUS>,
<&clock_audss EXYNOS_SCLK_I2S>;
clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
samsung,supports-6ch;
samsung,supports-rstclr;
samsung,supports-secdai;
samsung,idma-addr = <0x03000000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_0>;
};
sound {
compatible = "bva,implant-bva"
samsung,i2s-controller = <&i2s0>;
samsung,audio-codec = <&wm8960>;
};
============
static int soc_bind_dai_link(struct snd_soc_card *card, int num)
{
/* Find CPU DAI from registered DAIs*/
list_for_each_entry(cpu_dai, &dai_list, list) {
if (dai_link->cpu_of_node &&
(cpu_dai->dev->of_node != dai_link->cpu_of_node))
continue;
if (dai_link->cpu_name &&
strcmp(dev_name(cpu_dai->dev), dai_link->cpu_name))
continue;
if (dai_link->cpu_dai_name &&
strcmp(cpu_dai->name, dai_link->cpu_dai_name))
continue;
rtd->cpu_dai = cpu_dai;
}
printk("\n=========soc_bind_dai_link=============\n");//soc-core.c P903
/* Find CODEC from registered CODECs */
list_for_each_entry(codec, &codec_list, list) {
if (dai_link->codec_of_node) {
if (codec->dev->of_node != dai_link->codec_of_node)
continue;
} else {
if (strcmp(codec->name, dai_link->codec_nam
fs4412开发板学习笔记(十五)
最新推荐文章于 2022-05-26 10:47:05 发布
本文详细记录了在fs4412开发板上的学习过程,包括初始化设置、驱动程序安装、实验示例及遇到的问题与解决方法,为读者提供了一份实用的开发指南。
摘要由CSDN通过智能技术生成