[IMX8MP] Audio playback clock issues

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

[IMX8MP] Audio playback clock issues

553 Views
MrNam
Contributor II

Hi,

I am having some problems playing audio on a custom i.MX8MP Board. I can play some audio files just fine, but for others I get a kernel error like this:

failed to derive required Tx rate: 1411200

Depending on what audio file I play, the Tx rate is different. For example (audiofiles are in attached zip file):

aplay test.wav #works, clock: 1536000

aplay test_tone.wav #does not work, "failed to derive required Tx rate: 1411200"

aplay phone.wav #does not work, "failed to derive required Tx rate: 352800"

Could someone please have a look at my device tree and tell me where the problem might be?

sound {
compatible = "simple-audio-card";
simple-audio-card,name = "tlv-audio";
simple-audio-card,format = "i2s";
simple-audio-card,bitclock-master = <&cpu_dai>;
simple-audio-card,frame-master = <&cpu_dai>;
simple-audio-card,mclk-fs = <32>;
simple-audio-card,widgets =
"Headphone", "Headphone Jack",
"Microphone", "Mic Jack";
simple-audio-card,routing =
"Headphone Jack", "HPROUT",
"Headphone Jack", "HPLOUT",
"LINE2L", "Mic Jack",
"LINE2R", "Mic Jack",
"Mic Jack", "Mic Bias";

cpu_dai: simple-audio-card,cpu {
sound-dai = <&sai3>;
};

codec_dai: simple-audio-card,codec {
sound-dai = <&tlv320aic3x>;
clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI3_MCLK1>;
};
};
 
&sai3 {
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sai3>;
assigned-clocks = <&clk IMX8MP_CLK_SAI3>;
assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
status = "okay";
 
tlv320aic3x: tlv320aic3x@18 {
#sound-dai-cells = <0>;
compatible = "ti,tlv320aic3x";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_tlv>;
reset-gpios = <&gpio2 20 GPIO_ACTIVE_LOW>;
reg = <0x18>;
DVDD-supply = <&reg_snd_1v8>;
IOVDD-supply = <&reg_snd_3v3>;
AVDD-supply = <&reg_snd_3v3>;
DRVDD-supply = <&reg_snd_3v3>;
status = "okay";
};
 
pinctrl_tlv: tlvgrp {
fsl,pins = <
MX8MP_IOMUXC_SD2_WP__GPIO2_IO20 0x0
>;
};
 
pinctrl_sai3: sai3grp {
fsl,pins = <
MX8MP_IOMUXC_SAI3_MCLK__AUDIOMIX_SAI3_MCLK 0xD6
MX8MP_IOMUXC_SAI3_TXFS__AUDIOMIX_SAI3_TX_SYNC 0xD6
MX8MP_IOMUXC_SAI3_TXC__AUDIOMIX_SAI3_TX_BCLK 0xD6
MX8MP_IOMUXC_SAI3_TXD__AUDIOMIX_SAI3_TX_DATA00 0xD6
MX8MP_IOMUXC_SAI3_RXD__AUDIOMIX_SAI3_RX_DATA00 0xD6
>;
};
Labels (1)
0 Kudos
Reply
0 Replies