Yocto Linux中ADS1174 ALSA驱动无法识别为音频设备求助
问题:ADS1274编解码器无法在Yocto Linux中被识别为ALSA设备
核心目标
使德州仪器ADS1274编解码器在Yocto Linux环境中可用。因Linux内核自带支持ADS1174的ads117x ALSA驱动,且ADS1174与ADS1274高度相似,先尝试集成该现有驱动,但目前无法让其显示为ALSA设备。
硬件环境
- 搭载Freescale i.MX6ULL处理器的Variscite DART-6UL开发板
- 编解码器优先连接至SAI3接口
已做配置
设备树修改
- 根节点添加sound节点:
sound { compatible = "simple-audio-card"; simple-audio-card,name = "ads1174audio"; simple-audio-card,format ="left_j"; /* 左对齐,符合ADS1174数据手册规定 */ simple-audio-card,bitclock-master = <&sound_master>; simple-audio-card,frame-master = <&sound_master>; simple-audio-card,widgets = "Line", "Channel1in", "Line", "Channel2in", "Line", "Channel3in", "Line", "Channel4in"; simple-audio-card,routing = "Channel1in", "Input1", "Channel2in", "Input2", "Channel3in", "Input3", "Channel4in", "Input4"; sound_master: simple-audio-card,cpu { sound-dai = <&sai3>; dai-tdm-slot-num = <4>; dai-tdm-slot-width = <24>; }; simple-audio-card,codec { sound-dai = <&ads1174>; /*system-clock-frequency = <12288000>;*/ /*clocks = <&codec_osc>;*/ }; }
- sai3节点添加ads1174子节点:
&sai3 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_sai3>; ads1174: codec { compatible = "ti,ads1174"; }; };
注:不确定将ads1174节点添加至sai3下是否正确
Yocto配置
在layer.conf中设置驱动自动加载:
KERNEL_MODULE_AUTOLOAD += "ads117x"
现象
- Yocto编译正常,系统启动后
ads117x驱动已加载 - 执行
aplay -l无ALSA设备:
root@imx6ul-var-dart:~# aplay -l aplay: device_list:274: no soundcards found...
- dmesg日志:
[ 2.703831] ALSA device list: [ 2.709136] No soundcards found. ... [ 9.611115] ads117x: loading out-of-tree module taints kernel.
请求协助
不确定问题出在驱动加载顺序,还是设备树配置缺失关键项,恳请协助排查解决。
内容的提问来源于stack exchange,提问作者jkow
相关产品推荐
相关产品推荐

