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.

[FAQ] [参考译文] [FAQ] Linux驱动程序:AIC31xx/DAC31xx/AIC325x/AIC320x/AIC326x/AIC321x的设备驱动程序

Guru**** 1689980 points
Other Parts Discussed in Thread: PCMD3180, PCMD3140, TLV320ADC3101, TLV320ADC3100, TLV320AIC23, TLV320AIC26, TLV320AIC3120, TLV320AIC3100, TLV320DAC3101, TLV320DAC3100, TLV320AIC3111, TLV320AIC3110, TLV320AIC3105, TLV320AIC3106, TLV320AIC3107, TLV320AIC3101, TLV320AIC3007, TLV320AIC3109-Q1, TLV320AIC33, TLV320AIC3104, TLV320AIC3204, TLV320AIC3206, TLV320AIC3256, TLV320AIC3254, TLV320AIC3268, TLV320AIC3263, TLV320AIC3262, TLV320AIC3212, PCM1681, PCM1789, PCM1865, PCM1863, PCM1862, PCM1864, PCM3008, PCM3060, PCM5102A, PCM3008SW-LINUX, PCM3168ASW-LINUX, PCM1681SW-LINUX, TLV320AIC3XSW-LINUX, TLV320AIC31XX-DRIVERS, TLV320AIC31XXSW-LINUX, PCM3XXX-DRIVERS, PCM186X-DRIVERS, PCMD31XX-DRIVERS, PCM5XXX-DRIVERS, PCM17XXSW-DRIVERS, TLV320ADC31XX-DRIVERS, PCM179XSW-LINUX, TLV320AIC32X4SW-LINUX, TLV320ADCX140SW-DRIVERS
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/773056/faq-linux-drivers-device-drivers-for-aic31xx-dac31xx-aic325x-aic320x-aic326x-aic321x

主题中讨论的其他部件:PCMD3180PCMD3140TLV320ADC3101TLV320ADC3100TLV320AIC23TLV320AIC26TLV320AIC3120TLV320AIC3100TLV320DAC3101TLV320DAC3100TLV320AIC3111TLV320AIC3110TLV320AIC3105TLV320AIC3106TLV320AIC3107TLV320AIC3101TLV320AIC3007TLV320AIC3109-Q1TLV320AIC33TLV320AIC3104TLV320AIC3204TLV320AIC3206TLV320AIC3256TLV320AIC3254TLV320AIC3268TLV320AIC3263TLV320AIC3262TLV320AIC3212PCM1681PCM1789PCM1865PCM1863PCM1862PCM1864PCM3008PCM3060PCM3168PCM5102APCM3008SW-LinuxPCM3168ASW-LinuxPCM1681SW-LinuxTLV320AIC3XSW-LinuxTLV320AIC31XX-驱动程序, TLV320AIC31XXSW-LinuxPCM3XXX驱动程序PCM186X驱动程序PCMD31XX驱动程序PCM5XXX驱动程序PCM17XXSW驱动程序TLV320AIC2X驱动程序, TLV320DAC31XX-驱动程序, TLV320ADCX140SW-驱动程序PCM179XSW-LinuxTLV320ADC31XX-驱动程序TLV320AIC32X4SW-LinuxTLV320AIC32XX驱动程序, TLV320AIC32X6驱动程序

您好,

器件驱动程序是否适用于 AIC31xx/DAC31xx/AIC325x/AIC320x/AIC326x/AIC321x器件系列?

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

    上述设备的参考ALSA SoC编解码器驱动程序现在可从kernel.org获得。  这些器件驱动程序已在特定的基于OMAP3,OMAP4和Sitara的平台上进行了有限的测试。  虽然我们已尝试遵守ALSA SoC编解码器驱动程序开发指南,但在其他应用处理器平台上使用这些驱动程序可能需要大量的附加代码。  包含miniDSP的器件变体还要求系统为驱动程序提供二进制固件。  驱动程序并不支持这些设备的所有功能。

    更新(2021年1月6日):

    设备

    驱动程序

    文档

    支持的内核版本

    注释

    TLV320ADCx140,PCMD3180,PCMD3140

    tlv320adcx140.c

    tlv320adcx140.h

    tlv320adcx140.yaml

    v 5.0 或更高版本

    TLV320ADC310x (TLV320ADC3101,TLV320ADC3100)

    tlv320adc310x.c

    tlv320adc310x.h

    v 4.14 或更高版本

    TLV320AIC23

    TLV320AIC23-i2c.c.

    TLV320AIC23-SPI.c

    TLV320AIC23.c

    tlv320aic23.h

    v 4.14 或更高版本

    TLV320AIC26

    TLV320AIC26.c

    tlv320aic26.h

    v 4.14 或更高版本
    TLV320DAC33

    tlv320dac33.c

    tlv320dac33.h

    TLV320AIC3100,TLV320AIC3110,TLV320AIC3111,TLV320AIC3120,TLV320DAC3100, TLV320DAC3101

    tlv320aic31xx.c

    tlv320aic31xx.h

    tlv320aic31xx.txt

    v 4.19 或更高版本

    tlv320aic31xx.c

    tlv320aic31xx.h

    返回v 3.18

    TLV320AIC3x,TLV320AIC33,TLV320AIC3007,TLV320AIC3101,TLV320AIC3104, TLV320AIC3105,TLV320AIC3106,TLV320AIC3107,TLV320AIC3109-Q1

    tlv320aic3x.c

    tlv320aic3x.h

    tlv320aic3x.txt

    v 4.19 或更高版本

    TLV320AIC3204, TLV320AIC3254, TLV320AIC3206, TLV320AIC3256

    tlv320aic32x4-clk.c.

    tlv320aic32x4-i2c.c

    tlv320aic32x4-SPI.c

    tlv320aic32x4.c

    tlv320aic32x4.h

    tlv320aic32x4.txt

    v 4.19 或更高版本

    TLV320AIC3262,TLV320AIC3263,TLV320AIC3212,TLV320AIC3268

    tlv320aic326x.c

    tlv320aic326x.h

     

    v 4.19 或更高版本

    PCM1681

    pcm1681.c.

    v 4.19 或更高版本

    PCM1789

    pcm1789-i2c.c.

    pcm1789.c

    pcm1789.txt

    v 4.19 或更高版本

    PCM179x

    pcm179x-i2c.c

    pcm179x-spI.c

    pcm179x.c

    pcm179x.h

    pcm179x.txt

    v 4.19 或更高版本

    PCM1862,PCM1863,PCM1864,PCM1865

    pcm186x-i2c.c

    pcm186x-spI.c

    pcm186x.c

    pcm186x.h

    pcm186x.txt

    v 4.19 或更高版本

    PCM3008

    pcm3008.c

    pcm3008.h

    v 4.19 或更高版本

    PCM3060

    pcm3060-i2c.c.

    pcm3060-SPI.c

    pcm3060.c

    pcm3060.h

    pcm3060.txt

    v 5.0 或更高版本

    PCM3168

    pcm3168a-i2c.c.

    pcm3168a-spI.c

    pcm3168a.c.

    pcm3168a.h

    v 4.19 或更高版本

    PCM5102A

    pcm5102a.c.

    pcm5102a.txt

    v 4.19 或更高版本

    PCM512x

    pcm512x-i2c.c

    pcm512x-spI.c

    pcm512x.c

    pcm512x.h

    pcm512x.txt

    v 4.19 或更高版本

    PCM3008SW-Linux, PCM3168ASW-Linux, PCM1681SW-Linux, TLV320AIC3XSW-Linux, TLV320AIC31XX-drivers,  TLV320AIC31XXSW-Linux, PCM3XXX-drivers, PCM186X-drivers, PCMD31XX-drivers, PCM5XXX-drivers,  PCM17XXSW-drivers, PCM179XSW-Linux, TLV320ADCX140SW-drivers, TLV320ADC31XX-drivers, TLV320AIC2X驱动程序,  TLV320DAC31XX-驱动程序, TLV320AIC32XX-驱动程序, TLV320AIC32X4SW-Linux, TLV320AIC32X6-驱动程序

    其他一些链接:

    alsa.mirror.fr/.../alsa-driver-1.0 .24.tar.bz2

    在这些文件夹中查找

    编解码器      alsa-driver-codec.24\alsa-kernel\so\codecs 1.0

    OMAP-DRIVER-OMAP.24\alsa-kernel\so\omap 1.0             

    达芬奇         alsa-driver-DaVinci 1.0 .24\alsa-kernel\so\DaVinci

     

    用于测试这些驱动程序的有用命令:

    • Linux命令
      • I2C
        • i2cdetect  r 2 =>显示已连接的设备
        • i2ctget -y -f 2 0x4c 0x11 =>在 设备0x4C地址和寄存器0x11处获取I2C总线2
        • i2cset -y -f 2 0x4c 0x11 0x00 =>在 设备0x4C地址处设置I2C总线2并将0x11寄存到0x00
        • i2cdump -y -f 2 0x4c =>显示I2C总线2器件0x4c处的所有寄存器
      • 混音器
        • amixer 控件=>列出所有控件
        • amixer contents =>列出所有控件和内容
        • amixer set CH1_ASI_EN on=> tuns on ASI for Ch1
      • 记录
        • arecord –c<number of channels>-f <format>-r <sample_rate_-d <Duration><file_name>
          Format =>样本类型。 公认的样本格式为S8 U8 S16_LE S16_BE U16_LE U16_BE S24_LE U24_BE S32_LE S32_BE U32_LE U32_LE FLOG_LE FLOAT64_LE FLOAT64_BE IEC958_LE U24_LE S32_LE BE_BE_BH_SAB_U318
          持续时间=>记录的持续时间(以秒为单位)。
          SAMPLE_RATE => 8000 Hz,1.1025万 Hz,2.205万 Hz,3.2万 Hz,4.41万 Hz, 4.8万 Hz,9.6万 Hz
          file_name =>为录制的音频指定的文件名

      • 扬声器测试:
      • 环回
        • arecord -c 2 -f S16_LE -r 4.8万 | aplay -f S16_LE -c 2 -r 4.8万 --device="HW:0,1"
      • 列出所有内核消息
        • 带"tlv"
          • dmesg | grep tlv.
        • 带"PCM"
          • dmesg | grep pcm

    为Linux配置音频设备通常需要在两个方面修改DTS:

    DTS通常有两个区域需要描述设备:I2C和声音。 对于I2C,您将具有以下条目以及特定于设备的选项。 这些选项通常记录在驱动程序的YAML或txt文件中。 例如,对于tlv320aic3x:
    i2c0{
    tlv320aic3x:tlv320aic3x@1b{
    兼容="ti,tlv320aic3x";
    REG =<0x1b>;
    RESET-GPIOs =<&GPIO1 17 gPIO_ACTIVE_LOW;
    AVDD-SUPPLY =<调节器>;
    IOVdd-supply =<调节器>;
    DRVDD-SUPPLY =<调节器>;
    DVDD-SUPPLY =<调节器>;
    };
    };
    DTS还必须描述连接到处理器TDM或I2S总线的引脚。 适用于具有Sitara级处理器的BeagleBone Black,使用McASP0作为TDM总线外设,具有32位数据和TDM总线(DSP_A)。 使用 与tlv320aic3x相同的示例:
    &McASP0 {
    #sound - dai细胞=<0>;
    pinctrl-names ="default";
    pinctrl-0 =<&McASP0_PINS>;
    状态="正常";
    OP-mode =<0>;/* MCASP_IIS_MODE */
    TDM插槽=<4>;
    serial-dir =</* 0:非活动,1:TX,2:Rx */
               2 0 1 0
              >;
    tx-num-evt =<32>;
    rx-num-evt =<32>;
    };
    /{
    CLK_McASP0_FIXED:CLK_McASP0_FIXED {
    #clock-cells =<0>;
    兼容="固定时钟";
    时钟频率=<2457.6万>;
    };
    CLK_McASP0:CLK_McASP0 {
    #clock-cells =<0>;
    兼容="GPIO栅极时钟";
    Clocks =<&clk_McASP0_fixed>;
    enable-GPIOs =<&GPIO1 27 0>;/* GPIO1_27上的BeagleBone Black Clk启用*
    };
    声音{
    兼容="简单音频卡";
    simple-audio-card,name =“TI BeagleBone Black”;
    #sound - dai细胞=<0>;
    simple-audio-card,dai-link@0 {
    格式="DSP_A";
    bitclock-master =<&sound0_master>;
    frame-relay =<&sound0_master>;
    sound0_master:cpu {
    SOUND-DAI =<&McASP0>;
    Clocks =<&clk_McASP0>;
    };
    编解码器{
    sound-dai =<&tlv320aic3x>;
    };
    };
    };
    };