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.

[参考译文] TLV320AIC3104-Q1:使用 amixer (ALSA)、不使用 I2S

Guru**** 2535150 points
Other Parts Discussed in Thread: TLV320AIC3104

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1557917/tlv320aic3104-q1-using-amixer-alsa-without-i2s

器件型号:TLV320AIC3104-Q1
主题:TLV320AIC3104 中讨论的其他器件

工具/软件:

你好。

编解码器通过 I2C 连接到定制 Linux PC。
但编解码器的 I2S 接口未连接到此 CPU(连接到调制解调器)。
是否仍有办法在 Linux 中注册 TLV 编解码器以通过 ALSA amixer 进行控制? (例如,使用一些虚拟输入/输出)。

我尝试了以下 DTS:

/ {
    sound {
        compatible = "simple-audio-card";
        simple-audio-card,name = "AIC3104";

        simple-audio-card,widgets = 
                        "Line", "Line Out",
                        "Line", "Line In";
        simple-audio-card,routing = 
                        "Line Out", "LLOUT",
                        "Line Out", "RLOUT",
                        "MIC2L", "Line In",
                        "MIC2R", "Line In";

        simple-audio-card,dai-link@0 {
            reg = <0>;
            format = "dsp_a";
            bitclock-master = <&aic3104>;
            frame-master = <&aic3104>;

            cpu {
                sound-dai = <&dummy_dai>;
            };

            codec {
                sound-dai = <&aic3104>;
                system-clock-frequency = <512000>; // 512kHz
            };
        };

    };

    dummy_dai: sound-dummy {
        compatible = "linux,snd-soc-dummy";
        #sound-dai-cells = <0>;
    };

};

&i2c2{

    aic3104: codec@18{
        compatible = "ti,tlv320aic3104";
        reg = <0x18>;
        #sound-dai-cells = <0>;

        reset-gpios = <&gpiof 9 GPIO_ACTIVE_LOW>;

        AVDD-supply = <&v1v8_audio>;
        IOVDD-supply = <&v3v3>;
        DRVDD-supply = <&v3v3>;
        DVDD-supply = <&v1v8_audio>;
    };

};

谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    您可以使用 AIC31xx 驱动程序、可在此处访问: https://www.ti.com/tool/TLV320AIC31XX-DRIVERS

    你到底想做什么、现在的问题是什么? 很抱歉、我不完全理解。

    此致、
    Mir

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我想在 ALSA 混音器中使用编解码器,因此我可以控制它的音量。
    另外、我认为内核驱动程序应该已经正确、例如休眠和唤醒功能。

    当然、如果没有这样的方法、我们必须执行通过 I2C 直接通信的自定义脚本...

    我发现有 TLV320AIC31XX 和 TLV320AIC3x 驱动程序、
    但我们的芯片 TLV320AIC3104 在 3X 驱动程序的兼容列表中、而不是 31XX(这很令人困惑)。
       

    顺便说一下,在你发布的链接,有一个链接到 3X 驱动程序的文档(不是 31XX 任何人可能认为),该链接甚至不工作Slight smile

      

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    很抱歉。 是的、使用 aic3x 驱动程序。 以下是一些直接链接:

    https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/Documentation/devicetree/bindings/sound/ti,tlv320aic3x.yaml

    https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/sound/soc lv320aic3x.c

    https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/sound/soc codecs/tlv320aic3x.h

    该驱动程序将处理打开和关闭、睡眠/唤醒和 alsamixer 兼容性问题。

    此致、
    Mir

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢。
    我试图深入到它更多,它看起来像 Linux 不支持制作虚拟 DAI CPU 接口:/

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    希望这不会妨碍您使用我们的器件? 您应该仍然能够使用我链接的驱动程序来配置芯片。 如果您需要测试信号、则可以创建一个要播放的正弦波文件、并可以检查 DAC 输出在示波器上是否是正弦、然后您可以在 ADC 上使用飞线将其环回。 或者、仅仅验证您是否能够测量数据表中指定的本底噪声。

    -米尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好 我们让它工作,而不是直接使用 I2C 通信的驱动程序:)
    我们在噪音方面有一些问题、但我仍然无法找到来源。 最奇怪的是,噪音不是恒定的,但它开始时调制解调器开始发出声音,然后当噪音停止,声音是清晰的。 重新引导设备时、在重新引导过程中也会出现噪音。 也许这与时钟有关(我们使用调制解调器的 MCLK+BCLK 和 WCLK)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    是的,如果时钟不是恒定的,你会听到诸如噪音之类的伪影,当然这取决于它们的变化量和变化的性质。 我想知道您的调制解调器是否需要更强的电源? 或者在自己的线程中运行时钟、以便它不会被设备上运行的其他进程所困扰? 只是要尝试一些想法。 很高兴您能使用 I2C 的配置。

    此致、
    Mir