工具与软件:
大家好!
我将在我们的项目中使用"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},
您能帮助我解决重置错误吗?