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.

[参考译文] Linux/TLV320AIC3254-Q1:TLV320AIC3254-Q1 Linux 驱动程序、可连接 Raspberry PI 板

Guru**** 2538950 points
Other Parts Discussed in Thread: TLV320AIC3254-Q1, TLV320AIC3254, TLV320AIC3111, TLV320AIC3106, CC3200

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/622293/linux-tlv320aic3254-q1-tlv320aic3254-q1-linux-driver-and-interfacing-with-raspberry-pi-board

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

工具/软件:Linux

您好!

我想将 具有 AEC、噪声消除功能的 TLV320AIC3254-Q1与运行 Linux 的 Raspberry PI 板进行连接。

如何与 Raspberry PI 连接?

Linux 驱动程序的可用性... ?

要加载内核模块的器件树文件(.dts)...?

请帮我解决...

谢谢、此致、

尖叫

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

    欢迎访问 TI E2E 社区。
    您能否告诉我们您将哪个内核版本用于 Pi 板? 还有哪个 Raspberry Pi 版本(Pi 1/2/3)?
    通常、如果 TLV 320AIC 代码是 Pi 的内核的一部分、您只需在内核配置中启用。 请确认。
    还请查看下面的链接。 可能会对您有所帮助。

    e2e.ti.com/.../266169

    谢谢、
    Prabhuraj
    Black胡椒 技术
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复、

    我们正在使用 Raspberry PI 模型 b+ v1.2和 Raspberry PI 2模型 b。将来、我们计划继续使用 Raspberry PI 3。 因此、您可以考虑上述任何一种模型。
    2.内核版本:4.9.20+或4.9.35+。

    此外还有一个问题、在 Raspberry PI 中、我提到启用特定编解码器驱动程序时需要在/boot/config.txt 中添加"dtoverlay"。 我们是否可以对 TLV320AIC3254-Q1使用 modprobe 命令来实现它?

    谢谢、

    尖叫

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

    我可以看到从官方 RPi Git 集线器下载的4.9内核中的 TI snd_SOC_TLV320AIC32X4内核配置。 我正在引用 bcmrpi_defconfig 内核配置文件。 因此、您应该可以为 Pi 启用此驱动程序。


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

    好的。

    您的意思是说我需要配置内核、然后它将自动加载。。。

    它是否支持 Linux ALSA 库和实用程序...?

    谢谢、

    尖叫

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

    理想情况下、您可以启用 TLV320。 配置中的数据。

    我们提供专门的 Raspberry Pi 论坛、可为您提供有关 ALSA 的帮助。

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

    Shrikant、您好、

    是的、应该可以直接使用 ALSA 库来使用 TLV320AIC32x4编解码器。 您需要按照建议在内核配置中启用 TLV320AIC32x4

    您需要在 DTS 中启用与兼容 的项相同的项、例如(这只是一个示例、对于 i2c 数字和 pinctrl 等其他平台、rasp PI 会有所不同):  

    i2c2{(&I)

      pinctrl-names ="default";

      pinctrl-0 =<&i2c2_pins &sc16is7xx_pines>;

      状态="正常";

      时钟频率=<100000 >;

      tlv320aic32x4:tlv320aic32x4@18{

        兼容="ti、tlv320aic32x4";

        reg =<0x18>;

        状态="正常";

      };

    };

    需要提及 DTS 中音频框架中的编解码器、例如(再次取样、它将因 rasp PI 而异):

      听起来{
          兼容="ti、Beaglebone-black-audio";
          TI、模型="TI BeagleBone Black";
          TI、audio-codec =<&tlv320aic32x4>;
          TI、McASP-controller =<&McASP0>;
          TI、编解码器时钟速率=<12000000>;
          TI、音频路由=
             "耳机插孔"、      "HPLOUT"、
             "耳机插孔"、      "HPROUT"、
             "LINE1L"、              "线路输入"、
             "LINE1R"、              "线路输入";
          时钟名称="MCLK";
       };

    此外、您还需要在器件树中处理 I2C 和 I2S 的引脚多路复用和时钟。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    内核源代码 tlv320aic32x4.txt 中有一个文件、其中包含:

    tlv320aic32x4串行控制总线通过 I2C 协议进行通信

    所需属性:
    -兼容:应为"ti,tlv320aic32x4"
    - REG:I2C 从器件地址
    -supply--*:所需的电源调节器包括:
    "IOV"-数字 IO 电源
    "ldoin"- LDO 电源
    "DV"-数字内核电源
    "AV"-模拟内核电源
    如果您提供 ldoin、dv 和 av 是可选的。 否则、它们是必需的
    有关详细绑定的更多信息、请参阅稳压器 regulator.txt
    格式。

    可选属性:
    -复位 GPIO:如 GPIO/gpio.txt 中描述的那样、使用 args 重置 GPIO 相位
    -时钟/时钟名称:针对编解码器的主时钟命名为'mclk'的时钟。
    有关详细格式的信息、请参阅 Clock/clock-bindings.txt。


    示例:

    编解码器:tlv320aic32x4@18{
    兼容="ti、tlv320aic32x4";
    reg =<0x18>;
    时钟=<&CLKS 201>;
    时钟名称="MCLK";
    };


    它是否有助于编写 DTS 文件?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、您可以参考此内容并编写 DTS。

    谢谢、
    Prabhuraj
    Black胡椒 技术
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    是的、它应该会有所帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我不熟悉 dtoverlay 和 dts 文件结构。

     您能在 raspbery PI 上为 TLV320AIC3254编写.dts 文件的帮助/指南吗...?

    谢谢、

    Shrikant

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

    Shrikant、您好、

    这是 TI 论坛。 DTS 与普通方法相比、针对 rasp PI 执行的方法略有不同。 要解决 rasp PI 特定问题、建议您发布 rasp PI 论坛以快速响应。 www.raspberrypi.org/.../  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的 Dwarakesh。 感谢你的帮助。
    我将查看 Raspberry PI 论坛的相关信息。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,

    您能否提供任何样片 TLV320AIC3254 DTS 文件、Beagle Bone 等任何电路板或 TI 的任何电路板?
    这样我就可以为 Raspberry PI 引用和编写我自己的内容?

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

    您共享的 tlv320aic32x4.txt 是一个很好的起点。 作为示例、我无法在我拥有的任何 DTS 文件中找到确切的 TI 编解码器模块。 我在上一帖子中共享的代码片段也可用于参考。 此外、通过将 tlv320aic32x4.txt 作为主要参考、并通过检查如何使用其他编解码器(如 tlv320aic3x、TLV320AIC3111、tlv320aic3106)作为参考、您可以检查如何配置 DTS。 这些编解码器的条目已在 ARM/ARM/BOOT/DTS 文件夹下各种架构的 DTS 文件中提供。 为他们准备好。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

      我在4.9内核中看不到 TI 的 snd_SOC_TLV320AIC32X4内核配置。

    我执行 了“make menuconfig”,然后创建了.config,并且在该文件中只包含以下条目:  

    CONFIG_SND_SOC_TLV320AIC23=m
    CONFIG_SND_SOC_TLV320AIC23_I2C=m
    CONFIG_SND_SOC_TLV320AIC23_SPI=m
    CONFIG_SND_SOC_TLV320AIC31XX=m
    CONFIG_SND_SOC_TLV320AIC3X=m

     您如何获得 snd_SOC_TLV320AIC32X4的条目?

    谢谢、

    尖叫

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

    将 bcmrpi_defconfig 文件(我假设这是您的 defconfig 文件、如果有其他文件、请检查该文件)从 arch/arm/configs 复制到.config 文件。 然后、使 menuconfig arch=arm
    现在搜索 SND_SOC_TLV320AIC32X4。 您应该会找到它。

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

    你(们)好

    我成功地尝试了 Hack 内核配置文件、并能够为 tlv320aic32x4系列编译内核模块。
    请将"lsmod " 命令的输出发送给您的技术团队:

                     模块尺寸
     使用者

    BNEP                  11847 2.
    蓝牙            377680 5 bnep
    cfg80211             524570 0
    rfkill                21272 3蓝牙、cfg80211
    spidev                 7034 0
    SND_BCM2835           22966 1.
    I2C_BCM2835            6401 0
    SPI_BCM2835            7628 0
    BCM2835_gpioem        3791 0
    修复                  了3029 0
    uio_pdrv_genirq        3718 0
    uio                   10134 1 uio_pdrv_genirq
    SND_SoC_tlv320aic32x4_SPI    2020 0
    SND_SoC_tlv320aic32x4_i2c    2020 0
    snd_soc_tlv320aic32x4   24093 2 snd_soc_tlv320aic32x4_SPI、snd_soc_tlv320aic32x4_i2c
    SND_SoC_CORE         175984 1 SND_SoC_tlv320aic32x4

    SND_PCM_dmaEngine      6002 1 SND_SoC_CORE
    SND_COMpress          10112 1 SND_SoC_CORE
    SND_PCM               97377 4 SND_PCM_dmaEngine、SND_SoC_

    tlv320aic32x4、snd_BCM2835、snd_soc_core
    SND_TIMER             22610 1 SND_PCM
    SND                   68426 7 snd_compress、snd_timer、snd_BCM2835、snd_soc_core、snd_PCM
    I2C_DEV                6674 0
    保险丝                  93798 3.
    IPv6                 380873 44.


    您可以在  模块列表中看到"snd_soc_tlv320aic32x4"。

    我无法写入 DTS 文件。 您能帮我 解决...吗?
    如果没有使用直接 ALSA 库的 DTS 文件、您能帮我解决进一步的可能性吗?

    如果 我 想连接 除 Raspberry PI 以外的 tlv320aic32x4、例如任何 TI 电路板、如 cc3200或任何其他处理器...那么 可以选择什么...?
    此致、

    Shrikant