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.

[参考译文] Linux/TLV320AIC3104:TX2平台上的音频代码集成问题

Guru**** 2476055 points
Other Parts Discussed in Thread: TLV320AIC3104

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/810329/linux-tlv320aic3104-audio-code-integration-issue-on-tx2-platform

器件型号:TLV320AIC3104

工具/软件:Linux

尊敬的 TI 团队:

我正在 将 TI TLV320AIC3104集成到运行于 Linux Tegra-Ubuntu 4.3.38上的 TX2平台上。  

内核配置、 DTS 文件经过调整以启用 tlv320aic3x 驱动程序、 并 根据日志启用 tlv320aic3x 驱动程序。

 aic3x_probe ()、 aic3x_set_dai fmt ()和  aic3x_set_dai SYSCLK () 按顺序调用。

但是,当我在控制台中输入以下命令时,没有声音输出:

aplay -D HW:tegrasndt186ref、0 my.wav 

注意:my.wav 是从/usr/share/sounds/alsa/.复制的 Front_Right.wav

目前、我们仅将 HPLOUT 和 HPCOM 连接为声音输出。

我想知道如何设置寄存器以进行回放。

我应该修改 tlv320aic3x 驱动程序吗?

下面是我的 DTS 文件:

tegra_sound:Sound{
compatible ="NVIDIA、tegra-audio-t186ref-mobile-rt565x";
NVIDIA、model ="tegra-snd-t186ref-mobile-rt565x";
NVIDIA、num-codec-link =<13>;
NVIDIA、num-clk =<8>;NVIDIA_250x*
*速率= 250x400*/ PLx400
11289600/* AUD_MCLK_x11025_rate *
45158400/* PLLA_OUT0_x11025_RATE */
45158400/* AHUB_x11025_RATE */
245760000 /* PLLA_X8000_RATE */
12288000/* AUD_MCLK_X8000_RATE */
49152000/* PLLA_OUT0_X8000_RATE */
49152000>;/* AHUB_X8000_RATE */
时钟=<&Tegra_CAR TEGRA186_CLK_PLLP_OUT0>、
<&Tegra_CAR TEGRA186_CLK_PLL>、
<&Tegra_CAR TEGRA186_CLK_OUT0>
、<&Tegra_CA_CRACRACK_CRACK_<&TE_CRACRACRACRACK_<&TE_CRACRACRACRACK_<&TE_CRACRACRACRACK_<&TE_CRACRACRACRACK_

<&Tegra_CAR TEGRA186_CLK_AUD_MCLK>;
时钟名称="PLL_p_OUT1"、"PLL_A"、"PLL_A_out0"、"ahub "、
"clk_m"、"Head1";
复位=<&Tegra_CAR TEGRA186_RESET_AUD_MCLK>;
复位名称="external_rst";

状态="确定";
NVIDIA、音频路由=
"z OUT"、"z HPLOUT"、
"z OUT"、"z HPLOC"、"z HPLOCOM";
/*
电话"X OUT"、
"x In"、"x Mic "、
"y Headphone"、"y Out"、
"Y"、"y Mic "、
"z 耳机"、"z OUT"、
"z In"、"Z 麦克风"、
"m 耳机"、"m 输出"、
"m 输入"、"m 麦克风"、
"n 耳机"、"n 输出"、
"n 输入"、"n 麦克风"、
"o 耳机"、"O OUT"、
"o In"、"o Mic "、
"A In"、"A Mic "、
"b in"、"b Mic "、
"c in"、"c Mic "、
"d in"、"D Mic "、
"e 耳机"、"e OUT"、
"e In"、"e Mic "、
"D1耳机"、"D1 OUT"、
"D2耳机"、"D2 OUT";
*/

NVIDIA、Xbar =<&Tegra_axbar>;

rt565x_DAY_LINK:NVIDIA、DAI-LINK_1{
LINK_NAME ="rt565x-playing";
CPU-Dai =<&Tegra_i2di-name

;<&didi2di-codec";"CPU di-name&di-codec"="di-codec";<&di-name-di-di-codec";"di-di-codec"="di-nidi-nidi-name"di-name"di-name"di-name

格式="I2S";
位时钟从器件;
帧从器件;
位时钟非反相;
帧非反相;
位格式="S16_le";
BCLK_Ratio =<0>;
速率=<48000>;
num 通道=<2>;
ignore_suspend;
name-prefix ="x";
status ="已禁用";
};
NVIDIA、Di-link-2{
link-name ="SPDIF-DIT-1";
cpu-dai =<&Tegra_i2ifi>;
codec-dai =<&SPDIF_dit1>;
cpu-name ="I2S2";
codec-di-name ="di-hidi-"
格式="I2S";
位时钟从器件;
帧从器件;
位时钟非反相;
帧非反相;
位格式="S16_le";
BCLK_Ratio =<1>;
速率=<48000>;
num 通道=<2>;
ignore_suspend;
name-prefix ="y";
status ="disabled";
};
tlv320aic3104_da_link:NVIDIA、di-link-3{
link-name ="ti-playing";
cpu-dai =<&tegra_i2ifi>;
codec-dai =<&aic3x>;
cpu-di-name ="i2S1";
codec-v3x-codec";"tla3x-codec";
格式="I2S";
位时钟从器件;
帧从器件;
位时钟非反相;
帧非反相;
位格式="S16_le";
BCLK_Ratio =<0>;
速率=<48000>;
num 通道=<2>;
ignore_suspend;
name-prefix ="z";
status ="确定";
};
... 

I2C@31c0000{
status ="确定";
aic3x:tlv320aic3x-codec.6-0018@18{
compatible ="ti、tlv320aic3104";
status ="确定";
reg =<0x18>;
gpio-reset =<&gra_main_gpio tegra_gpio (J、6、tegot_v3vdr



=)<&v3vdr;gpot_cld_clv3vd_clus_clus_clocks

=<&vd_clus_clus_clus_clus_clus_clus_clocks =<&vd_clus_clus_clus_clus_clus_clus_clus_clus_clus_clock<&vd_clus_clock<&v
DVDD 电源=<&VDD_1v8_ap>;
};
}; 

此致、

C.T.

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

    C.T.

    我们不支持也不开发 Tegra 平台、因此我建议您将此问题发布到 NVIDA 论坛。 不过、您的 Tegra_sound 是否应该指示使用"ti,tlv320aic3104"或指向在 i2c 的设备树文件中进一步定义的 tlv320aic3104驱动程序?

    确保正在进行 I2C 事务处理、并且器件已通过适当的引脚连接到 I2C 总线。

    还要测试内核是否在 sys/devices/*.i2c 上检测到编解码器,并查看 dmesg 上的 i2c 上是否有任何错误。

    有关使用 Sitara 平台的 Linux 音频示例、请参阅此 链接。 它会引导您通过 器件树完成编解码器驱动程序、平台驱动程序和机器驱动程序的配置。 您将需要对 Tegra 平台执行类似的操作。

    此致、

     佩德罗