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] [参考译文] [常见问题解答] PCMD3180:是否有用于 PCMD3180器件的 Linux 驱动程序?

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/954542/faq-pcmd3180-is-there-a-linux-driver-for-the-pcmd3180-devices

器件型号:PCMD3180

您好!

是否有适用于 PCMD3180器件的公开可用 Linux 驱动程序?

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

    您好!

    PCMD3180 Linux 驱动程序与 TLV320ADCx140驱动程序共享、并在 Linux 内核网站上进行了更新:

    https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/sound/soc/codecs/tlv320adcx140.c?h=v5.9.6

    https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/sound/soc/codecs/tlv320adcx140.h?h=v5.9.6

     您可以在以下位置找到器件树的文档:

    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/sound/tlv320adcx140.yaml

    上游应用了一些修补程序、因此请确保下载这些修补程序并应用它们。

     

    对于 PCMD3180、您将需要设置一些寄存器来将 PDM 输入和 PDM 时钟映射到 DTS 中的引脚:

    TI、mim-bias -source =>如果不存在、则将0x75 ADCX140_PWR_CFG 设置为0x60、 MICBIAS_PDZ 位域

    设置微偏置源、不在您的应用中使用

    TI、PDM-EDE-SELECT =<1 0 0>; => 0x20 ADCX140_PDM_CFG 寄存器

    设置 PDMCLK 边沿以锁定数据。  

    TI、GPI-CONFIG =<4 5 0 >;      => 0x2B ADCX140_GPIO_CFG0 和0x2C ADCX140_GPI_CFG1寄存器

    设置通道的 GPI 输入

    TI、GPO-CONFIG-1 =<4 1>;        => 0x22 ADCX140_GPO_CFG0寄存器  

    设置 PDM 时钟输出

    TI、插槽映射 =<0 1 2 3>;        => 0x0B ADCX140_ASI_CH1、0x0C ADCX140_ASI_CH2、0x0D ADCX140_ASI_CH3和0x0E ADCX140_ASI_CH4

    将 TDM 总线插槽映射到通道

    TI、ASI-TX-DRIVE =<1>;        => 0x07 ADCX140_ASI_CFG0、TX_Fill

    当 PCMD3180不驱动 TDM 总线时、设置为一个三态。

     

    一些其他 PCMD3180设置是通过 alsamixer 命令执行的。 例如、alsamixer 命令设置以下寄存器

    ## CHX_ASI_EN 至 ON

    amixer cset numid=29,iface=Mixer, name='CH1_ASI_EN Switch' 打开

    amixer cset numid=30、iface=Mixer、name='CH2_ASI_EN Switch'打开

    amixer cset numid=31、iface=mixer、name='CH3_ASI_EN Switch' on   => 0x74、 ADCX140_ASI_OUT_CH_EN 决定启用哪些通道

     

    ### MICxM 输入多路复用器至数字

    amixer cset numid=25, iface=mixer, name=MIC1M Input Mux’2=>   0x3C,ADCX140_CH1_CFG0,将通道1设置为数字麦克风输入

    amixer cset numid=26、iface=mixer、name=MIC2M 输入多路复用器' 2    => 0x41、ADCX140_CH2_CFG0将通道2设置为数字麦克风输入

    amixer cset numid=27、iface=mixer、name=MIC3M 输入多路复用器' 2    => 0x46、ADCX140_CH3_CFG0将通道3设置为数字麦克风输入

     

    ## PDM CLK Div 选择为2.8224MHz

    amixer cset numid=46,iface=Mixer, name='PDM Clk Div Select’ 0   => 0x1F,PDMCLK_CFG,设置 PDM 时钟输出的时钟速率