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/AM3351: Audio not working with SDK 4.0

Part Number: AM3351
Other Parts Discussed in Thread: TLV320AIC3106

Tool/software: Linux

Good evening,

I've been working with TI SDK 3.0 for the past several months on a custom AM3351-based board. After configuring the audio on TI SDK 3.0 by following the examples, I have not had any issues using aplay, speaker-test, or mplayer. However, when upgrading to TI SDK 4.0 using Linux kernel 4.9.28, I'm not longer getting any sound from my speaker.

I configured that I have the correct kernel configuration settings for audio as per processors.wiki.ti.com/.../Linux_Core_Audio_User's_Guide

Device Drivers  --->
  Sound card support  --->
    Advanced Linux Sound Architecture  --->
      ALSA for SoC audio support  --->
        <*>   SoC Audio for the Texas Instruments OMAP chips
        <*>   SoC Audio for Texas Instruments chips using eDMA
        <*>   Multichannel Audio Serial Port (McASP) support
              CODEC drivers  --->
                <*> Texas Instruments TLV320AIC3x CODECs
        <*>   ASoC Simple sound card support

And I'm using the exact same dts file as I did in the past with audio support. Are there any differences in configuring the audio card between TI SDK 3.0 (4.4.12) and 4.0 (4.9.28).

sound {
compatible = "simple-audio-card";
simple-audio-card,name = "AM335x-EVM";
simple-audio-card,widgets =
"Headphone", "Headphone Jack",
"Line", "Line In";
simple-audio-card,routing =
"Headphone Jack", "HPLOUT",
"Headphone Jack", "HPROUT",
"LINE1L", "Line In",
"LINE1R", "Line In";
simple-audio-card,format = "i2s";

simple-audio-card,cpu {
sound-dai = <&mcasp0>;
system-clock-frequency = <24000000>;
system-clock-direction = "out";
bitclock-master;
frame-master;
};

sound_master: simple-audio-card,codec {
sound-dai = <&tlv320aic3106>;
system-clock-frequency = <12000000>;
};
};

mcasp_pins: mcasp_pins {
pinctrl-single,pins = <
0x12c ( PIN_OUTPUT_PULLDOWN | MUX_MODE6 ) /* (N19) gmii1_txclk.mcasp0_aclkx */
0x130 ( PIN_OUTPUT_PULLDOWN | MUX_MODE6 ) /* (M19) gmii1_rxclk.mcasp0_fsx */
0x134 ( PIN_OUTPUT_PULLDOWN | MUX_MODE6 ) /* (N17) gmii1_rxd3.mcasp0_axr0 */
0x108 ( PIN_INPUT | MUX_MODE6 ) /* (J19) gmii1_col.mcasp0_axr2 */
>;
};

&i2c1 {
#address-cells = <1>;
#size-cells = <0>;
clock-frequency = <100000>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&audio_i2c_pins>;

tlv320aic3106: tlv320aic3106@1b {
#sound-dai-cells = <0>;
compatible = "ti,tlv320aic3106";
reg = <0x1b>;
status = "okay";
};
};

&mcasp0 {
#sound-dai-cells = <0>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&mcasp_pins>;
status = "okay";

op-mode = <0>; /* MCASP_IIS_MODE */
tdm-slots = <2>;
/* 4 serializers */
serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
1 0 0 0
>;
tx-num-evt = <32>;
rx-num-evt = <32>;
};

&tscadc {
status = "okay";
adc {
ti,adc-channels = <2 6>;
};
};

Thanks for your support!

Best regards,
Chris