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.

[参考译文] TLV320AIC3101:不显示带有 Qcs610处理器的 I2C 线路 TLV320AIC3101上的活动

Guru**** 2380860 points
Other Parts Discussed in Thread: TLV320AIC3101
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1107541/tlv320aic3101-not-showing-activity-on-i2c-lines-tlv320aic3101-with-qcs610-processor

器件型号:TLV320AIC3101

大家好、

我们按照文档中的说明在 DTS 中配置了 tlv 编解码器[tlv320aic3101]。 我们使用的是驱动程序代码[tlv320aic3x.c]。 我们的主器件是处理器、可生成12.28MHz 的 MCLK 频率和1.53MHz 的 BCLK 频率

DTS 文件

&qupv3_SE3_i2c{
状态="ok";
tlv320aic3x_codec:tlv320aic3x@18{
兼容="ti、tlv320aic3x";
reg =<0x18>;
GPIO-reset =&tlv320aic321xx_rst_gpio;
DRVDD-SUPPLY =<&pm6150_L18>;
AVDD-SUPPLY =<&pm6150_L18>;
IOVdd-supply =<&pm6150_L10>;
DVDD 电源=<&pm6150_L10>;
};
};

使用 i2cdetect 命令、它显示驱动程序代码正在使用

/# i2cdetect -r -y 2.
0 1 2 3 4 5 6 7 8 9 A b c d e f
00:------------ ------------ ------
10:------------ ------ UU -------------- ----
20:------------ ------------ ------------ --
30:------------ ------------ ------------ --
40:------------ ------------ ------------ --
50:---------- ------------ ------------ --
60:------------ ------------ ------------ --
70:------------ ------

但是、在引导时、我们可以看到驱动程序代码正在使用、它从日志中进入 i2cprobe、init 和编解码器探针。 但我们在探测时无法看到 SCL 和 SDA 线上的活动。

此外、还可使用手动 i2cset 命令写入和读取数据。

编解码器未在声卡内注册[/proc/asound/cards]

但编解码器正在以下程序中注册:

/# cat /sys/kernel/debug/ASOC/编解码器
btfmslim_slave
tlv320aic3x-codec.2-0018
SND-SOC-Dummd.

请帮助我们找到根本原因、

此致、
Abhiram

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Abhiram:

    我们的软件团队将了解这一点、预计在48小时内收到响应。

    Brian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Abhiram:

    您的内核版本是什么?如果 i2cdump 命令可以正常工作?

    此致

    拉斐尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Raphael、

    感谢您的回复。 我们的内核版本为 4.14.206。i2cdump 命令仅在给定该强制标志(-f)时才起作用、否则它会显示器件正忙。

    此致、
    Abhiram

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果您能够共享 i2c 转储、则对团队很有用。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Brian、

    是的、我要连接 i2c 转储。




    此致、
    Abhiram

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Abhiram:

    它看起来您的声卡注册失败。您可以尝试强制启用简单卡,如下所示:

    CONFIG_SND_SIMPLE_CARD_UTILS=y

    CONFIG_SND_SIMPLE_CARD=y

    CONFIG_SND_SIMPLE_SCU_CARD=y

    此致

    拉斐尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Raphael、

    实际上、我们没有使用上述声卡。 我们正在使用 Qualcomm 声卡。

    为了正确理解、

    /# cat /proc/asound/cards
    0 [sm6150idpsndcar]:sm6150-idp-snd-- sm6150-idp-snd-card
    sm6150-idp-snd-card

    此致、
    Abhiram

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Abhiram:

    对于 Qualcomm 声卡、我找到另一个设备的一个参考设置:

    https://git.ti.com/cgit/tas256xsw-android/tas2563-android-driver/tree/dai_link.readme

    有关更多 Qualcomm 声卡注册问题、请咨询 Qualcomm。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Raphael、

    我们已经为声卡寄存器添加了正确的条目。 我们使用另一台设备进行了检查、发现注册正确。 但主要问题是驱动程序代码本身未显示活动。 即使它进入 INIT 函数内部,并且日志上显示了调试打印,但写入函数没有发生。 我们刚刚尝试了 aplay 命令,但它没有播放,我们看到了一些有关 PLL 的日志:

    [82.951485] aic3x_hw_params ():无法设置 PLL

    [82.951506] tlv320aic3x-codec 2-0018:asoc:无法设置 tlv320aic3x-hifi HW 参数:-22.

    [82.951512]  Quin_M2S_RX:ASOC:HW_params be failed -22 [82.951518]  SM6150 Media1:ASOC:HW_params be failed -22  


    此致、
    Abhiram

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Abhiram:

    您能否检查 MCLK 和 BCLK 是否正常?

    尊敬的 Peter:

    您能否检查 PLL 寄存器是否正确?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Raphael、

    与主器件一样,我们得到的 MCLK 频率为12.288MHz,因此我们进行了与相同的计算
    我们得到的值为 k= 8.000 [PLL 使能方程] i;J=8、D = 0000。

    因此、我们将 PLL 的寄存器值配置为:

    #Page 0选择寄存器
    i2cset -f -y 2 0x18 0 0x00

    #SW 复位寄存器
    i2cset -f -y 2 0x18 1 0x00

    编解码器采样率选择寄存器 IE;48kHz
    i2cset -f -y 2 0x18 2 0x00

    #Page 0/Register 3:PLL 编程寄存器 A iE;Q = 16、P = 1
    i2cset -f -y 2 0x18 3 0x81

    #Page 0/寄存器4:PLL 编程寄存器 B IE;J = 8
    i2cset -f -y 2 0x18 4 0x20

    #Page 0/寄存器5:PLL 编程寄存器 C (1)
    i2cset -f -y 2 0x18 5 0x00

    #Page 0/Register 6:PLL 编程寄存器 D
    i2cset -f -y 2 0x18 6 0x00

    此致、
    Abhiram



  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Abhiram:

    您是否在电路板上使用 AIC3101EVM 或集成器件?您使用什么命令?aplay?

    此致

    拉斐尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Raphael、

    我们在器件中集成了此编解码器[tlv320aic3101]。  


    我们使用的命令还包括:  

    amixer -c 0 cset iface=mixer、name='Quin_MI2S_RX SampleRate' 6;-->选择48kHz 的采样率
    amixer -c 0 cset iface=mixer, name='Quin_M2S_RX Channels' 0;-->通道0
    amixer -c 0 cset iface=mixer, name='Quin_MI2S_RX Format' 0;--> 16位
    amixer -c 0 cset iface=mixer, name='Quin_M2S_RX 音频混合器 MultiMedia1' 1;
    aplay -D HW:0、0 testaudio.wav

    同样供参考的是、我们有声卡0、并尝试使用多媒体1进行播放。 Quin MI2S 是 Qualcomm 处理器的 I2S 通道之一。
    此外、我们还使用 Qualcomm 内部编解码器[仅用于测试]尝试了上述 aplay 命令、并且播放正在进行此操作。 但是对于 tlv 编解码器,播放并不像我在上一个线程中提到的日志那样发生。

    此致、
    Abhiram

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    根据下面的设置、它适用于48kHz FS。

    此致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Abhiram:

    您可以在 DTS 中添加时钟。参考如下:

    兼容="ti、tlv320aic32x4";
    	reg =<0x18>;
    	时钟=<&CLKS 201>;
    	时钟名称="MCLK";