你(们)好!
我正在尝试切换编解码器配置、以将 IMX7D 的 SAI 设置为主模式、因为我想使用同一 SAI 对多个编解码器进行多路复用、我的编解码器是 TI tlv320aic3104。
我的 Linux 内核版本是 iMX 4.14。
我已更改配置、但在使用扬声器测试运行一些测试时听不到声音。
这是我的配置、是否知道哪里出了问题?
&sai2 {
#sound-dai-cells = <1>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sai2 &pinctrl_codec_reset &pinctrl_audio_ctrl>;
assigned-clocks = <&clks IMX7D_SAI2_ROOT_SRC>,
<&clks IMX7D_SAI2_ROOT_CLK>;
assigned-clock-parents = <&clks IMX7D_PLL_AUDIO_POST_DIV>;
assigned-clock-rates = <0>, <12288000>;
fsl,sai-synchronous-rx;
fsl,sai-mclk-direction-output;
status = "okay";
};
sound-codec {
compatible = "simple-audio-card";
status = "okay";
simple-audio-card,name = "EG4-Sound-Card";
simple-audio-card,format = "i2s";
simple-audio-card,bitclock-master = <&dailink0_master>;
simple-audio-card,frame-master = <&dailink0_master>;
simple-audio-card,widgets =
"Speaker", "Speaker",
"Line", "LineOut",
"Headphone", "Ambient",
"Microphone", "SpeakerMic",
"Microphone", "AmbientMic";
simple-audio-card,routing =
"Speaker", "LLOUT",
"LineOut", "RLOUT",
"Ambient", "HPLOUT",
"LINE1L", "SpeakerMic",
"LINE1R", "AmbientMic";
dailink0_master: simple-audio-card,cpu {
sound-dai = <&sai2 0>;
system-clock-frequency = <12288000>;
};
simple-audio-card,codec {
sound-dai = <&tlv320aic3104>;
clocks = <&clks IMX7D_SAI2_ROOT_CLK>;
system-clock-frequency = <12288000>;
};
};
tlv320aic3104: tlv320aic3104@18 {
#sound-dai-cells = <0>;
compatible = "ti,tlv320aic3104";
reg = <0x18>;
gpio-reset = <&gpio2 10 0>;
clocks = <&clks IMX7D_SAI2_ROOT_CLK>;
clock-names = "mclk";
assigned-clocks = <&clks IMX7D_PLL_AUDIO_POST_DIV>,
<&clks IMX7D_AUDIO_MCLK_ROOT_DIV>;
assigned-clock-rates = <884736000>,
<12288000>;
AVDD-supply = <&avdd>;
DRVDD-supply = <&avdd>;
IOVDD-supply = <&iovdd>;
DVDD-supply = <&dvdd>;
};
pinctrl_sai2: sai2grp {
fsl,pins = <
MX7D_PAD_SAI1_MCLK__SAI2_MCLK 0x04
MX7D_PAD_SAI2_TX_BCLK__SAI2_TX_BCLK 0x1c
MX7D_PAD_SAI2_TX_SYNC__SAI2_TX_SYNC 0x1c
MX7D_PAD_SAI2_TX_DATA__SAI2_TX_DATA0 0x04
MX7D_PAD_SAI2_RX_DATA__SAI2_RX_DATA0 0x1c
>;
};
非常感谢、









