工具与软件:
您好、TI 专家!
我将音频编解码器 TLV320AIC3106IRGZT 与我的定制 AM625 SOM 配合使用。 我需要在上面播放一些音频、我正在使用的输出线路是音频编解码器 IC 中的左侧 LOP 和左侧 LOM。
我在器件树中将其配置为
/ {
tlv320_mclk: clk-0 {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <12288000>;
};
codec_audio: sound {
compatible = "simple-audio-card";
simple-audio-card,name = "AM62x-SKEVM";
simple-audio-card,widgets =
"Headphone", "Headphone Jack",
"Line", "Line Out",
"Line", "Line In",
"Microphone", "Microphone Jack",
"Speaker", "External Speaker";
simple-audio-card,routing =
"Headphone Jack", "HPLOUT",
"Headphone Jack", "HPROUT",
"Line Out", "LLOUT",
"Line Out", "RLOUT",
"LINE1L", "Line In",
"LINE1R", "Line In",
"MIC3R", "Microphone Jack",
"Microphone Jack", "Mic Bias";
simple-audio-card,format = "dsp_b";
simple-audio-card,bitclock-master = <&sound_master>;
simple-audio-card,frame-master = <&sound_master>;
simple-audio-card,bitclock-inversion;
simple-audio-card,cpu {
sound-dai = <&mcasp1>;
};
sound_master: simple-audio-card,codec {
sound-dai = <&tlv320aic3106>;
clocks = <&tlv320_mclk>;
};
};
};
&main_pmx0 {
main_audio_codec_reset_pins_default: main-audio-codec-reset-default-pins {
pinctrl-single,pins = <
AM62X_IOPAD(0x1dc, PIN_OUTPUT_PULLDOWN, 7) // (E15) MCAN0_RX.GPIO1_25 /
>;
};
main_mcasp1_pins_default: main-mcasp1-default-pins {
pinctrl-single,pins = <
AM62X_IOPAD(0x090, PIN_INPUT, 2) /* (M24/K17) GPMC0_BE0N_CLE.MCASP1_ACLKX */
AM62X_IOPAD(0x098, PIN_INPUT, 2) /* (U23/P21) GPMC0_WAIT0.MCASP1_AFSX */
AM62X_IOPAD(0x08c, PIN_OUTPUT, 2) /* (L25/J17) GPMC0_WEN.MCASP1_AXR0 */
AM62X_IOPAD(0x084, PIN_INPUT, 2) /* (L23/K20) GPMC0_ADVN_ALE.MCASP1_AXR2 */
>;
};
};
&main_i2c2 {
bootph-all;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&main_i2c2_pins_default>;
clock-frequency = <100000>;
tlv320aic3106: audio-codec@1b {
#sound-dai-cells = <0>;
compatible = "ti,tlv320aic3106";//ti,tlv320aic3x: tlv320aic3106
reg = <0x1b>;
pinctrl-names = "default";
pinctrl-0 = <&main_audio_codec_reset_pins_default>;
reset-gpios = <&main_gpio1 25 GPIO_ACTIVE_LOW>;
ai3x-micbias-vg = <1>;
AVDD-supply = <&vcc_3v3_sys>;
IOVDD-supply = <&vcc_3v3_sys>;
DRVDD-supply = <&vcc_3v3_sys>;
DVDD-supply = <&vcc_1v8_audio>;
};
};
&mcasp1 {
status = "okay";
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&main_mcasp1_pins_default>;
op-mode = <0>;
tdm-slots = <2>;
serial-dir = <
1 0 2 0
0 0 0 0
0 0 0 0
0 0 0 0
>;
tx-num-evt = <0>;
rx-num-evt = <0>;
};我使用 Kernel Config 构建的驱动程序包括:
设备驱动程序--> 声卡支持--> 高级 Linux 声音架构--> 支持 SoC 音频的 ALSA --> 适用于德州仪器(TI) SoC -->的音频支持 <*>多通道音频串行端口(McASP)支持 编解码器驱动程序--> <*>德州仪器(TI) TLV320AIC3x 编解码器 <*>ASOC 简单声卡支持
在完成器件树和内核配置中的所有这些更改后、我通过 Linux 从 SDK V10.00.07.04引导了 AM625 SOM、并进行了上述更改、然后输出会如所示
root@am62xx-evm:~# aplay -l **** List of PLAYBACK Hardware Devices **** card 0: AM62xSKEVM [AM62x-SKEVM], device 0: 2b10000.audio-controller-tlv320aic3x-hifi tlv320aic3x-hifi-0 [2b10000.audio-controller-tlv320aic3x-hifi tlv320aic3x-hifi-0] Subdevices: 1/1 Subdevice #0: subdevice #0 root@am62xx-evm:~# root@am62xx-evm:~# aplay sample-12s-48000.wav Playing WAVE 'sample-12s-48000.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo aplay: pcm_write:2178: write error: Input/output error root@am62xx-evm:~#
如何解决此问题并使音频播放?
此致、
Aditya T