主题中讨论的其他器件:TLV320AIC3254
您好!
我们的器件使用 TI 编解码器 IC TLV320AIC3254、我在 当前 SDK 中找到 tlv320aic32x4.c/tlv320aic32x4.h、能否将此驱动程序用于3254?
如果不是、您能否与我共享 TLV320AIC3254驱动程序、我的 Linux kerver 版本是3.18.44。
谢谢
将会
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我们的器件使用 TI 编解码器 IC TLV320AIC3254、我在 当前 SDK 中找到 tlv320aic32x4.c/tlv320aic32x4.h、能否将此驱动程序用于3254?
如果不是、您能否与我共享 TLV320AIC3254驱动程序、我的 Linux kerver 版本是3.18.44。
谢谢
将会
您好、Aaron、
感谢您的友好答复。
我应首先更新问题的最新状态、
TLV320AIC32X4驱动程序代码已从内核日志中合并、我发现它目前无法正常工作。
日志片段1:
[0.648491] aic32x4_i2c_probe ():aic32x4_i2c_probe
[0.648543] of _get_named_gpio_FLAGS:无法解析节点'/soc/i2c@78b8000/tlv320aic32x4_codec@18[0]的'set-gpio'属性
[0.648563] tlv320aic32x4-codec 4-0018:获取 MCLK 失败。 如果没有 MCLK、当前的执行不支持使用这个编解码器
[0.648615] tlv320aic32x4-codec:探测器4-0018失败,错误-2
与 WPI FAE 讨论、他们与我共享一个解决方案、补丁链接:https://patchwork.kernel.org/patch/6694971/
执行一次多次测试、另一个问题弹出窗口。
日志片段2:
[0.648538] of _get_named_gpio_FLAGS:无法解析节点'/soc/i2c@78b8000/tlv320aic32x4_codec@18[0]的'set-gpio'属性
[0.648556] tlv320aic32x4-codec 4-0018:获取 MCLK 失败。
[0.648587] 4-0018未找到电源 IOV、使用虚拟稳压器
[0.648643] tlv320aic32x4-codec 4-0018:缺少电源'dv'或'ldoin'
[0.648654] tlv320aic32x4-codec 4-0018:无法设置稳压器
第744行:[11.209906] mdm9607-ASOC-snd SoC:声音:ASOC:编解码器 DAI tlv320aic32x4-hifi 名称:tlv320aic32x4-codec.4-0018,未注册
第744行:[11.209906] mdm9607-ASOC-snd SoC:声音:ASOC:编解码器 DAI tlv320aic32x4-hifi 名称:tlv320aic32x4-codec.4-0018,未注册
行746:[ 11.214299] mdm9607-ASOC-snd SoC:声音:ASOC:编解码器 DAI tlv320aic32x4-hifi 名称:tlv320aic32x4-codec.4-0018,未注册
行746:[ 11.214299] mdm9607-ASOC-snd SoC:声音:ASOC:编解码器 DAI tlv320aic32x4-hifi 名称:tlv320aic32x4-codec.4-0018,未注册
这对我们来说是一个严重的阻碍问题、您能尽快帮助我们解决吗?
谢谢。
将会
您好、Aaron、
对于 上述问题信息、我尝试注释出 aic32x4_setup_regulators()在 aic32x4_i2c_probe()中、然后错误日志消失。
//ret = aic32x4_setup_regulators(&i2c->dev、aic32x4);
//if (ret){
// dev_err (&i2c->dev,"设置稳压器失败\n");
// 返回支架;
//}
不幸的是,除了 “未注册”之外,内核聚合中仍有错误信息,这是否意味着编解码器注册成功?????
日志片段:
[0.648446] aic32x4_i2c_probe ():aic32x4_i2c_probe
[0.648494] of_get_named_gpio_FLAGS:=> propname 是重置 GPIO,NP 名称是“兼容”
[0.648505] of_get_named_gpio_FLAGS:无法解析节点'/soc/i2c@78b8000/tlv320aic32x4@18[0]的'set-gpio'属性
[0.648521] tlv320aic32x4-codec 4-0018:获取 MCLK 失败。
[0.648546] tlv320aic32x4-codec 4-0018:=>无法读取 ID:0
PCM 器件通过"ls /dev/snd "注册成功
~# ls /dev/snd
controlC0 hwC0D33 pcmC0D12p pcmC0D17c pcmC0D21c pcmC0D2c pcmC0D7p
hwC0D10 hwC0D39 pcmC0D13c pcmC0D17p pcmC0D22p pcmC0D2p pcmC0D8c
hwC0D11 hwC0D40 pcmC0D13p pcmC0D18c pcmC0D23c pcmC0D3c pcmC0D9c
hwC0D12 hwC0D9 pcmC0D14c pcmC0D18p pcmC0D24p pcmC0D3p 计时器
hwC0D13 pcmC0D0c pcmC0D14p pcmC0D19c pcmC0D25c pcmC0D4c
hwC0D15 pcmC0D0p pcmC0D15c pcmC0D1c pcmC0D26p pcmC0D4p
hwC0D16 pcmC0D10p pcmC0D16c pcmC0D1p pcmC0D27c pcmC0D5p
hwC0D32 pcmC0D11c pcmC0D16p pcmC0D20p pcmC0D27p pcmC0D6c
下一步、我尝试运行音频示例代码并验证编解码器基本功能、但失败了。 从日志中、我们可以找到一些错误信息、例如"设置硬件参数"
/usrdata #./example_audio play1 demo.wav
读取 wav HDR
获取 wav HDR 偏移
QL_CLT_SET_Mixer_value、器件:Sec_AUX_PCM_RX 音频混合器 MultiMedia1、值:1.
QL_CLT_SET_Mixer_value、设置混频器:Sec_AUX_PCM_RX 音频混合器 MultiMedia1成功
__ql_PCM_setParams,401
无法设置硬件参数
__ql_PCM_open:params 设置失败
QL_AudPlayer_Open:在__ql_PCM_open 中失败
分段故障(转储内核)
/usrdata #
已仔细检查内核日志,由于 MCLK 错误值导致的问题、直到现在、我还不知道根本原因。
[64.162067] Quectel_clean_modemFatalTimes、clean modemFatalError cnt filp_open 失败!
[68.608387] aic32x4_get_divs()行为303:速率为8000、MCLK 为0
[68.608406] aic32x4:不支持主时钟和采样率
[68.608415] aic32x4:不支持采样率
[68.608433] tlv320aic32x4-codec 4-0018:asoc:无法设置 tlv320aic32x4-hifi 硬件参数:-22.
以上是我的初始分析、您能帮我找出根本原因吗?
BR
将会
将、
由于第三方开发的系统种类繁多、并且提供的 Linux 版本也不同、我们无法提供驱动程序支持。 我们确实提供了基于 TI 电路板的示例、其中显示了必须配置和链接的三个主要组件:
此 Sitara Linux 音频驱动程序概述 wiki 页面 概述了如何配置这三个组件。
此 ALSA 用户空间 Wiki 页面 显示了一些可用的命令行实用程序。
此 Linux 内核音频用户指南 wiki 页面 显示了在不同 TI Linux EVM 上使用音频编解码器的示例。
这些 wiki 页面应提供良好的开发起点。 如需更多支持、请联系第三方和相应的 Linux 支持论坛以获取您的系统和 Linux 版本。
此致、
-Steve Wilson