工具/软件: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.