工具与软件:
大家好!
我将在我们的项目中使用"TLV320AIC3100"。 我将"IMX8MM"与 Linux 内核5.4.70配合使用。 我能够探测编解码器驱动程序。 下面是我的 dmesg 日志。
[ 4.267295] asoc-simple-card sound-tlv320aic: tlv320aic31xx-hifi <-> 30030000.sai mapping ok [ 4.275771] asoc-simple-card sound-tlv320aic: ASoC: no DMI vendor name! [ 4.286372] tlv320aic31xx-codec 1-0018: Could not reset device: -6
我的 dts 文件如下所示。
sound-tlv320aic {
compatible = "simple-audio-card";
simple-audio-card,name = "tlv320aic-audio";
simple-audio-card,format = "i2s";
simple-audio-card,frame-master = <&cpudaitlv>;
simple-audio-card,bitclock-master = <&cpudaitlv>;
simple-audio-card,widgets =
"Microphone", "Microphone Jack",
"Line", "Line In Jack",
"Line", "Line Out Jack",
"Headphone", "Headphone Jack",
"Speaker", "Speaker Jack";
simple-audio-card,routing =
"Headphone Jack", "HPL",
"Headphone Jack", "HPR",
"MIC1LM","Microphone Jack",
"MIC1RP","Microphone Jack",
"MIC1LP","Microphone Jack",
"Speaker Jack", "SPK";
cpudaitlv: simple-audio-card,cpu {
sound-dai = <&sai3>;
clocks = <&clk IMX8MM_CLK_SAI3_ROOT>;
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <32>;
};
simple-audio-card,codec {
sound-dai = <&tlv320aic>;
clocks = <&clk IMX8MM_CLK_SAI3_ROOT>;
};
};
&i2c2 {
clock-frequency = <400000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c2>;
status = "okay";
tlv320aic: tlv320aic@18 {
#sound-dai-cells = <0>;
compatible = "ti,tlv320aic3100";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio_wlf>;
ti,reset-gpio = <&gpio3 0 GPIO_ACTIVE_LOW>;
reg=<0x18>;
ai31xx-micbias-vg = <MICBIAS_2_0V>;
status = "okay";
};
};
&sai3 {
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sai3>;
assigned-clocks = <&clk IMX8MM_CLK_SAI3>;
assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL2_OUT>;
assigned-clock-rates = <11289600>;
status = "okay";
};
pinctrl_gpio_wlf: gpiowlfgrp {
fsl,pins = <
MX8MM_IOMUXC_NAND_ALE_GPIO3_IO0 0xd6
>;
};
我将 PLL2用于频率为"11289600"的 SAI3根时钟。 我还在"tlv320aic31xx.c"中添加了电流频率的 PLL 参数 、如下所示:
{11289600, 44100, 8, 0, 128, 8, 2, 128, 8, 2},
您能帮助我解决重置错误吗?