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 中使用 TI 驱动程序

Guru**** 2466550 points
Other Parts Discussed in Thread: TLV320ADC3140

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1253412/how-to-use-the-ti-driver-in-linux

主题中讨论的其他器件:TLV320ADC3140

我使用相应的 Linux 内核 Pi 编译了 TI 驱动程序(tlv320adcx140.c 和 tlv320adcx140.h)。 我用 insmod 安装了它。 没有错误。 当我 lsmod 时、我可以看到插入了一些相关的 tlv320adcx140模块。 但当我使用 arecord -l 或 aplay -l 时、我无法看到 TI 器件。 但通过 i2c 检测、我可能看到具有4C 地址的 TI 器件。 您知道原因吗? 谢谢

 

 

$吸烟

                  使用的模块大小

tlv320adcx140         57344 0

regmap_i2c            16384 1 tlv320adcx140

 

 

$ aplay -l

****播放硬件设备列表****

卡0:耳机[BCM2835耳机]、设备0:BCM2835耳机[BCM2835耳机]

 子器件:8/8

 子设备#0:子设备#0

 子设备#1:子设备#1

 子设备#2:子设备2

 子设备#3:子设备#3

 子设备#4:子设备#4

 子设备#5:子设备#5

 子设备#6:子设备#6

 子设备#7:子设备#7

卡1:vc4hdmi0 [vc4-hdmi-0],设备0:MAI PCM I2S-hif-0[MAI PCM I2S-hif-0]

 子器件:1/1

 子设备#0:子设备#0

卡2:vc4hdmi1 [vc4-hdmi-1],设备0:MAI PCM I2S-hif-0[MAI PCM I2S-hif-0]

 子器件:1/1

 子设备#0:子设备#0

 

 

$ arecord -l

****捕获硬件设备列表****

 

 

$ sudo i2cdetect -y 1

    0 1 2 3 4 5 6 7 8 9 a b c d e f

00:-------                         ----

10:------- ------- ------- --

20:------- ------- ------- --

30:------- ------- ------- --

40: 40 ------- ------- --- 4c ----

50:------ 54 ------- ------- --

60:--------------- -------

70:------- ----

 

 

我们可以在设置 PurePath 后、通过 Windows 语音录音机从板载麦克风录制声音、以供参考。 现在、我们正在尝试从 Linux 录制声音。

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

    您会如此善良,并将 DTS 文件分享到配置声卡吗?

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

    您好  

    我不知道如何在这里附加 DTS 文件。 我可以通过粘贴以下方式与您分享。  我没有为 tlv320adc3140设备创建声卡、因为我认为 TI 会将其作为叠加 DTS 文件提供。 在我的当前 dts 文件中、您可以看到只有一个  来自 Pi CPU (SND_BCM2835)的相关 snd 器件。   

    我将主 dts 文件 bcm2711-rpi-400.dts 粘贴 如下

    // SPDX-License-Identifier:GPL-2.0
    /dts-v1/;
    #define BCM2711
    #define i2c0 i2c0if
    #include "bcm2711.dtsi"
    #include "bcm283x-rpi-wifi-bt.dtsi"
    #undef i2c0
    #include "bcm270x.dtsi"
    #define i2c0 i2c0mux
    #include "bcm2711-rpi.dtsi"
    #undef i2c0
    //#include "bcm283x-rpi-usb-peripheral.dtsi"

    /{
    兼容="raspberrypi、400"、"BRCM、bcm2711";
    型号="Raspberry Pi 400";

    已选择{
    /* 8250辅助 UART,而非 pl011 */
    stdout-path ="SERIAL1:115200n8";
    };

    LED{
    LED-ACT{
    GPIO =<&GPIO 42 GPIO_ACTIVE_HIGH>;
    };

    LED 功率{
    标签="PWR";
    GPIO =<&expgpio 2 GPIO_active_low>;
    默认状态="keep";
    linux、default-trigger ="default-on";
    };
    };

    sd_io_1v8_reg:sd_io_1v8_reg{
    兼容="稳压器-GPIO";
    稳压器名称="VDD-SD-IO";
    稳压器最小微伏=<1800000>;
    稳压器最大微伏=<3300000>;
    稳压器引导开启;
    稳压器始终开启;
    稳压器稳定时间 us =<5000>;
    GPIO =<&expgpio 4 GPIO_active_high>;
    状态=<1800000 0x1>、
    <3300000 0x0>;
    状态="可以";
    };

    SD_VCC_reg:SD_VCC_reg{
    兼容="固定稳压器";
    稳压器名称="VCC-SD";
    稳压器最小微伏=<3300000>;
    稳压器最大微伏=<3300000>;
    稳压器引导开启;
    高电平有效使能;
    GPIO =<&expgpio 6 GPIO_active_high>;
    };
    };

    bt (&B){
    关断-GPIO =<&expgpio 0 GPIO_ACTIVE_HIGH>;
    };

    ddc0{(&D)
    状态="可以";
    };

    DDC1{(&D)
    状态="可以";
    };

    expgpio (&E){
    GPIO-LINE-NAME="BT_ON"、
    "WL_ON"、
    "PWR_LED_OFF"、
    "GLOBAL_RESET"、
    "VDD_SD_IO_SEL"、
    "GLOBAL_SHUTDOWN"、
    "SD_PWR_ON"、
    "关机请求";
    };

    GPIO{(&G)}
    /*
    *从 rpi_SCH_4b_4p0_reduced.pdf 和
    *官方 GPU 固件 DT blob。
    *
    *图例:
    *"foo"=原理图上名为"foo"的 GPIO 行
    *"foo_N"=原理图上名为"foo"的 GPIO 行、低电平有效
    */
    GPIO-LINE-NAME="ID_SDA"、
    "ID_SCL"、
    "SDA1"、
    "SCL1"、
    "GPIO_GCLK"、
    "GPIO5"、
    "GPIO6"、
    "SPI_CE1_N"、
    "SPI_CE0_N"、
    "spi_miso"、
    "SPI_MOSI"、
    "SPI_SCLK"、
    "GPIO12"、
    "GPIO13"、
    /*串行端口*/
    "TXD1"、
    "RXD1"、
    "GPIO16"、
    "GPIO17"、
    "GPIO18"、
    "GPIO19"、
    "GPIO20"、
    "GPIO21"、
    "GPIO22"、
    "GPIO23"、
    "GPIO24"、
    "GPIO25"、
    "GPIO26"、
    "GPIO27"、
    "RGMII_MDIO"、
    "RGMIO_MDC"、
    /*由 BT 模块使用*/
    "CTS0"、
    "RTS0"、
    "TXD0"、
    "RXD0"、
    /* Wifi 使用*/
    "SD1_CLK"、
    "SD1_CMD"、
    "SD1_DATA0"、
    "SD1_DATA1"、
    "SD1_DATA2"、
    "SD1_DATA3"、
    /*与 SPI 闪存共享*/
    "PWM0_MISO"、
    "PWM1_MOSI"、
    "STATUS_LED_G_CLK"、
    "SPIFLASH_CE_N"、
    "SDA0"、
    "SCL0"、
    "RGMII_RXCLK"、
    "RGMII_RXCTL"、
    "RGMII_RXD0"、
    "RGMII_RXD1"、
    "RGMII_RXD2"、
    "RGMII_RXD3"、
    "RGMII_TXCLK"、
    "RGMII_TXCTL"、
    "RGMII_TXD0"、
    "RGMII_TXD1"、
    "RGMII_TXD2"、
    "RGMII_TXD3";
    };

    hdmi0{(&H)
    状态="可以";
    };

    HDMI1 (&H){
    状态="可以";
    };

    像素值0 (&P){
    状态="可以";
    };

    像素值1 (&P){
    状态="可以";
    };

    像素值2 (&P){
    状态="可以";
    };

    像素值4 (&P){
    状态="可以";
    };

    pwm1 (&P){
    pinctrl-names ="默认";
    pinctrl-0 =<&pwm1_0_gpio40 &pwm1_gpio41>;
    状态="可以";
    };

    /* EMMC2用于驱动 SD 卡*/
    emmc2 (&E){
    vqmmc-supply =<&sd_io_1v8_reg>;
    VMMC-SUPPLY =<&SD_VCC_reg>;
    损坏的 CD;
    状态="可以";
    };

    基因组(&G){
    PHY-Handle =<&phy1>;
    phy-mode ="rgmII-rxid";
    状态="可以";
    };

    genet_mDIO{(&G)}
    phy1:以太网-phy@1 {
    /*无 PHY 中断*/
    寄存器=<0x1>;
    };
    };

    pcie0 (&P){
    PCI@0、0{
    device_type ="PCI";
    #address-Cells =<3>;
    #size-cells =<2>;
    范围;

    寄存器=<0 0 0 0 0>;

    USB@0、0{
    寄存器=<0 0 0 0 0>;
    复位=<&RESET RASPBERRYPI_FIRMWARE_RESET_ID_USB>;
    };
    };
    };

    /* uart0与 BT 模块通信*/
    uart0 (&U){
    pinctrl-names ="默认";
    pinctrl-0 =<&uart0_ctsrts_GPIO30 &uart0_GPIO32>;
    uart-has-rtscts;
    };

    /* uart1映射到引脚接头*/
    uart1 (&U){
    pinctrl-names ="默认";
    pinctrl-0 =<&uart1_gpio14>;
    状态="可以";
    };

    vc4 (&V){
    状态="可以";
    };

    vec (&C){
    状态="已禁用";
    };

    &WIFI_pwrseq{
    RESET-GPIO =<和 expgpio 1 GPIO_ACTIVE_LOW>;
    };

    //===================================================
    //下游 RPI 变化

    #include "bcm271x-rpi-bt.dtsi"

    /{
    soc{
    /delete-node/pixelvalve@7e807000;
    /delete-node/hdmi@7e902000;
    };
    };

    #include "bcm2711-rpi-ds.dtsi"
    #include "bcm283x-rpi-csi1-2lan.dtsi"
    #include "bcm283x-rpi-i2c0mux_0_44.dtsi"

    /{
    已选择{
    bootargs ="相干 池=1M 8250.nr_UARTs=1 SND_BCM2835.ENABLE_头戴 式耳机=0";
    };

    /delete-node/wifi-pwrseq;
    };

    mmcnr (&M){
    pinctrl-names ="默认";
    PINCCTRL-0 =<&SDIO_PINS>;
    总线宽度=<4>;
    状态="可以";
    };

    uart0 (&U){
    pinctrl-0 =<&uart0_pins &bt_pins>;
    状态="可以";
    };

    uart1 (&U){
    PINCCTRL-0 =<&uart1_PINS>;
    };

    spi0 (&P){
    pinctrl-names ="默认";
    pinctrl-0 =<&spi0_pins &spi0_cs_pins>;
    CS-GPIO =< GPIO 8 1>、< GPIO 7 1>;

    spidev0:spidev@0{
    兼容="spidev";
    寄存器=<0>;/* ce0 */
    #address-Cells =<1>;
    #size-cells =<0>;
    SPI-max-frequency =<125000000>;
    };

    spidev1: spidev@1{
    兼容="spidev";
    REG =<1>;/* CE1 */
    #address-Cells =<1>;
    #size-cells =<0>;
    SPI-max-frequency =<125000000>;
    };
    };

    GPIO{(&G)}
    BT_PINS:BT_PINS{
    BRCM、pins ="-";//非空以保持 btuart 快乐、//4 = 0
    //来欺骗
    BRCM、function =<0>;
    BRCM、Pull =<2>;
    };

    uart0_pins:uart0_pins{
    BRCM、引脚=<32 33>;
    BRCM、函数= ;
    BRCM、Pull =<0 2>;
    };

    uart1_pins:uart1_pins{
    BRCM、引脚;
    BRCM,功能;
    BRCM、拉;
    };

    uart1_bt_pins:uart1_bt_pins{
    BRCM、引脚=<32 33 30 31>;
    BRCM、函数= ;/* alt5=UART1 */
    BRCM、Pull =<0 2 2 0>;
    };
    };

    i2c0if{(&I)
    时钟频率=<100000>;
    };

    i2c1 (&I){
    pinctrl-names ="默认";
    pinctrl-0 =<&i2c1_pins>;
    时钟频率=<100000>;
    };

    I2S (&I){
    pinctrl-names ="默认";
    PINCCTRL-0 =<&I2S_PINS>;
    };

    //===================================================
    //此处是特定于电路板的内容

    /{
    power_ctrl:power_ctrl{
    兼容="GPIO 断电";
    GPIO =<&expgpio 5 0>;
    力;
    };
    };

    sdhost (&S)
    状态="已禁用";
    };

    &phy1{
    LED-MODES =<0x00 0x08>;/*链接/活动链接*/
    };

    GPIO{(&G)}
    AUDIO_PINS:AUDIO_PINS{
    BRCM、Pins =<>;
    BRCM、function =<>;
    };
    };

    LED (&L){
    //将 LED 声明为禁用状态,以防用户想要将其映射
    //连接到标头上的 GPIO
    ACT_Led:LED-ACT{
    默认状态="关闭";
    Linux、default-trigger ="mmc0";
    GPIO =<&GPIO 0 GPIO_ACTIVE_HIGH>;
    状态="已禁用";
    };

    PWR_LED:LED-pwr{
    默认状态="关闭";
    linux、default-trigger ="default-on";
    GPIO =<&GPIO 42 GPIO_ACTIVE_HIGH>;
    };
    };

    pwm1 (&P){
    状态="已禁用";
    };

    vchiq{(&V)
    pinctrl-names ="默认";
    PINCCTRL-0 =<&AUDIO_PINS>;
    };

    cam0_reg:&cam_demume_reg{
    };

    genet_mDIO{(&G)}
    时钟频率=<1950000>;
    };

    /{
    __overrides__{
    AUDIO =<&selected>、"Bootargs{ON='Snd_BCM2835.ENABLE_HDMI=1"、OFF='Snd_BCM2835.ENABLE_HDMI=0}";

    ACT_LED_GPIO =<&ACT_LED_>、"GPIO:4"、
    <&act_led>、"status=oke";
    ACT_LED_ACTIVLOW =<&ACT_LED>、"GPIOs:8";
    ACT_LED_TRIGGER =<&ACT_LED>、"linux、default-trigger";

    PWR_LED_GPIO =<&pwr_LED>、"GPIO:4";
    PWR_LED_ACTIVLOW =<&pwr_LED>、"GPIO:8";
    PWR_LED_TRIGGER =<&pwr_LED>、"linux、default-rigger";

    ETH_led0 =<&phy1>、"LED-modes:0";
    ETH_LED1 =<&phy1>、"LED-mode:4";
    };
    };

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

    您好!

    以下是有关如何在 BBB 上配置声卡的指南。 希望这可以帮助您。

    音频设备驱动程序 Guidelines.pdf (TI.com)

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

    您好!  

    我没有 makefile/KCONFIG 文件、bin 和 Jason 文件。 我只有 tlv320adcx140.c 和 tlv320adcx140.h。 您能与我分享这些文件吗? 而不是 Kconfig 文件。

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

    本文档 仅提供了有关如何注册声卡的示例、您需要做的是重点介绍 DTS 设置的幻灯片。 对于您的工程、可忽略指南中的 KCONFIG 和 Makefile。

    您可以按此流程下载。 您可以访问此链接(lpa-android-drivers/pcmdevice-linux-driver - Unnamed repository;编辑此文件'description'以命名存储库。)

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

    除此之外、我们还使用 bcm2711。 我没有看到像 McASP tdm 这样的设备来连接编解码器和 CPU。 从硬件的角度来看、我们将使用 I2S 进行连接。 是否有示例说明通过 I2S 将 tlv320adc3140连接到其他 MCU? 谢谢!

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

    为什么 MCU、您的系统是 Linux、对吧?

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

    是的、Linux。 MCU 是轻量级 CPU。 它还可运行操作系统

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

    您是否成功注册了声卡?

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

    如何辨别?  

    我跟踪了您发送给我的 PDF 文件。  在内核配置中启用 CONFIG_SND_SOC。 添加以下 DTS 节点。 但我仍然没有任何器件在"arecord -l"。

    声音{
    兼容="简单音频卡";
    simple-audio-card、name ="PI4";
    #sound-Da-cells =<0>;
    simple-audio-card、da-link@0 {
    格式="I2S";
    bitclock-master =<&sound0_master>;
    FRAME-MASTER =<&sound0_MASTER>;
    sound0_master:CPU {
    Sound-Dai =<&I2S>;
    //时钟=<&clk_McASP0>;
    //dia-tdm-slot-num =<4>;
    //dia-tdm-slot-width =<32>;
    //dia-tdm-slot-tx-mask =<1 1 1 1>;
    //dia-tdm-slot-rx-mask =<1 1 1 1 1>;

    };

    编解码器{
    sound-dai =<&tlv320adc3140>;

    };

    };

    i2c0 (&I){
    tlv320adc3140: tlv320adc3140@4c {
    兼容="ti, tlv320adc3140";
    #sound-Da-cells =<0>;
    寄存器=<0x4c>;
    /*数字麦克风*/

    ti、mic-bias-source =<6>;
    ti、pdm-edge-select =<0 0 0 0>;
    TI、GPIO-CONFIG =<0>;
    TI、gpi-config =<4 5 6 7>;
    TI、GPO-CONFIG-1 =<4 1>;
    TI、GPO-CONFIG-2 =<4 1>;
    TI、GPO-CONFIG-3 =<4 1>;
    TI、GPO-CONFIG-4 =<4 1>;
    ti、插槽映射=<0 1 2 3>;
    TI、ASI-TX-DRIVER =<0>;
    // RESET-GPIO =<&GPIO1 14 GPIO_ACTIVE_HIGH>;

    };
    };

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

    您是否有任何基于 I2S 的示例可供我们参考?

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

    让我们设置一个 conf-Call? 我的邮件是 shenghao-ding@ti.com。

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

    如何致电您? 分组?

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

    团队对我来说是可以的。 您可以通过邮件与我共享链接。

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

    https://teams.microsoft.com/l/meetup-join/19%3ameeting_MWQ0NDQ0YWItMTZlMi00NTZmLTliZDEtZGY2ZTQ1OTk2MWEw%40thread.v2/0?context=%7b%22Tid%22%3a%223d72901d-9741-4366-bb70-2dfa3ef60438%22%2c%22Oid%22%3a%22ae4fdbbf-8f4d-4259-bd8b-dc9f88ff2c55%22%7d

    当您准备就绪时、请告诉我

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

    请告诉我您的时区、您也可以通过之前帖子中已提供的 May Mail (shenghao-ding@ti.com)共享链接。

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

    我在蒙特利尔时区。 我已经给您发送了链接。 如果你在中国,我可以在你今天的午餐时间打电话给你。 请告诉我。 谢谢!

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

    您好  

    如经团队讨论、请参考 arch/arm/boot/dts/am335x-cm-t335.dts 以将 adc3140设置为主站。

    请咨询平台供应商如何设置 CPU 部件、并从平台端设置 I2S-clk、包括 bck 和 ws clk 作为输入或从模式。

    声音{
    兼容="简单音频卡";
    simple-audio-card、name ="cm-t335";

    simple-audio 卡、小工具=
    "麦克风"、"Mic 插孔"、
    "线路"、"线路输入"、
    "耳机"、"耳机插孔";

    简单音频卡、路由=
    "耳机插孔"、"LHPOUT"、
    "耳机插孔"、"RHPOUT"、
    "LLINEIN"、"线路输入"、
    "RLINEIN"、"线路输入"、
    "MICIN"、"Mic Jack ";

    simple-audio 卡、格式="I2S";
    simple-audio-card、bitclock-master =<&sound_master>;
    simple-audio-card、frame-master =<&sound_master>;

    简单音频卡、CPU{
    sound-Dai =<&MCASP1>;/*请咨询平台供应商如何设置 CPU 部件。*/
    };

    sound_master:simple-audio-card、codec {
    Sound-Dai =<&TLV320AIC23>;
    系统时钟频率=<12000000>
    };
    };

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

    尊敬的丁先生:

    现在、我甚至没有看到加载了驱动程序 ko。  

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

    KO 应由您自己加载。

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

    不、甚至我将其构建到内核中。  我看不到我们添加的打印件。

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

    我正在尝试购买一款符合您的 pdf 指南的 BBB 板。 是否知道主板版本或名称? 我在亚马逊看到了几种销售选项、您使用哪种板来编写您的指南。

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

    我们使用的 BBB 有点旧。 它是修订版 C AM335X、Cortex A8。  

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

    您能否帮助检查为什么 在我手动登录时未调用 adcx140_i2c_probe。 插入过程中未报告任何错误。   

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

    它可以加载到 BBB 上。 您会将驱动程序编译到内核中而不是 ko 吗? 然后检查是否已加载。 您确定在正确的 DTS 文件中添加的设置吗?

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

    尊敬的 Ding:

    是的,这是正确的 DTS。 我尝试将其编译到内核中、或将其加载为 ko。 我都无法看到 adcx140_codec_probe 被调用。  

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

    与 dmesg 中的 snd 相关的事项:

    adsdev@RogueOne:~$ dmesg | grep sound
    [1.675553]找不到声卡。
    [17.631501]平台声音:延迟探头待定

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

    调用序列为:

    1) i2c_probe

    2) 2)编解码器探针

    第一步是确认是否调用了 i2c_probe? 您能否确认连接了 adc3140的 i2c 总线上是否有其他芯片、以及是否已成功加载?

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

    您好、我们通过此链接购买了 BBB 板

    https://www.amazon.ca/WaveShare-BB-BeagleBone-Cortex-A8-Development/dp/B00KM6YTN6/ref=sr_1_1?keywords=beaglebone+black&qid=1691419815&sprefix=beagle%2Caps%2C120&sr=8-1

    您是否有关于如何设置此板以便让声卡正常工作的指南?  

    您以前给我发送的 pdf 是 BBB+pcmdevice、我们不知道它是什么。  

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

    我认为在此总线中只有一个 i2c 器件、但 PI 除外、因为在从 pi 到 tlv 的连接删除后检测到 non。

    adsdev@RogueOne:~$ sudo i2cdetect -r -y 1
    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00:------- ----
    10:------- ------- ------- --
    20:------- ------- ------- --
    30:------- ------- ------- --
    40: 40 ------- ------- --- 4c ----
    50:------ 54 ------- ------- --
    60:--------------- -------
    70:------- ----
    adsdev@RogueOne:~$ sudo i2cdetect -r -y 1
    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00:------- ----
    10:------- ------- ------- --
    20:------- ------- ------- --
    30:------- ------- ------- --
    40:-------------- ------- ------- --
    50:------- ------- ------- --
    60:------- ------- ------- --
    70:------- ----

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

    第一步是确认是否调用了 i2c_probe? ——我回答了几次。 我没有看到它被调用。

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

    请咨询平台供应商、了解为什么 i2c DTS 设置不能导致调用 i2c_probe。

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

    您可以 直接将 pcmdevice 代码集成至 BBB。  我之前向大家介绍过这份指导原则。  

    此处提供代码:

    lpaa-android-drivers/pcmdevice-linux-driver -未命名的存储库;编辑此文件"说明"以命名存储库。

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

    是否有可能找不到驱动程序? 我已经将其内核。 驱动程序是否必须执行 ko 才能使 DTS 器件绑定正常工作?

    兼容="ti, tlv320adcx140"

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

    对您的指南有2个问题:

    1、我在哪里可以获得 Linux 内核代码? 我使用哪种配置来构建内核、以及如何在 BBB 电路板上运行内核?

    2、pcmdevice 在我看来与我们手头上的 tlv320adcx140.c 是不同的。 是否通过示例向我们展示如何在 BBB 电路板上运行 tlv320adcx140.c 驱动程序?

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

    在我的理解中、我认为 BBB 已经包含了板载 tlv320adcx140 ADC。 我需要做的是在内核中做一个配置、然后它将与 aplay 和 arecord 一起工作。 是这样吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在驱动程序中、没有"ti, tlv320adc X 140"。 请使用"ti, tlv320adc3140"。 
    并确保代码中的以下模块已编译到驱动程序中。 

    #ifdef config_of

    static const structure of_device_id tlv320adcx140_of_match[]=
    {.compatible ="ti, tlv320adc3140"},
    {.compatible ="ti, tlv320adc5140"},
    {.compatible ="ti, tlv320adc6140"},
    {}、
    };
    module_device_table (oftlv320adcx140_of_match);
    #endif
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    当然、它们都可以在 BBB 上获得。  

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

    用于 BBB 的 Release_Specific_Release_Notes 内核可下载:https://software-dl.ti.com/processor-sdk-linux-rt/esd/AM335X/08_02_00_24/exports/docs/devices/AM335X/linux/Linux.html

    关于第2个问题、我之前已经与大家分享了该准则。 使用 ARecord 命令。

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

    感谢您提供这些信息。 它最终被调用。 但 不会调用 adcx140_codec_probe。 i2c_probe 的返回值为0。

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

    尊敬的 Ding:

      不知道 adcx140_codec_probe 为何不被调用? 是否仍然是命名问题?

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

    对于声卡注册、您是否获得了平台供应商关于如何在 DTS 文件中设置 CPU 的支持?

    另外一点、请将 adc3140的 i2c dts 设置发布。

    简单音频卡、CPU{
    Sound-Dai = ;/*请咨询平台供应商如何设置 CPU 部件。*/
    };

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

    尊敬的 Ding:

    我们在 Pi 论坛中在线搜索、他们将其设置为&I2S。

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

    尊敬的 Ding:

    在 CODEC_PROBE 中、尝试使用 regmap_write 写入寄存器时出错。 错误为-5。 我看了一下。 这意味着寄存器不可写。

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

    请检查 i2c 读取和写入在平台中是否运行良好。

    Execute following command
    i2cdump -y -f 0 4c 0 is i2c bus no 4c is 7-bit i2c device address
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    adsdev@RogueOne:~$ sudo i2cdump -y -f 0x1 0x4c
    未指定大小(使用字节数据访问)
    0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
    00:00 00 00 00 00 05 00 00 00 00 00 00 01 02 03 04 ..... ??.0?????
    10:05 06 07 02 48 ff 10 10 04 20 02 08 00 02 40??H?? ?????@
    20:00 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "
    30:00 00 00 00 ff 00 00 00 00 00 00 00 00 00 00 C9 80........... ???
    40:00 00 00 00 C9 80 00 00 00 C9 80 00 00 C9 80 00 ...?...???
    50:00 00 00 C9 80 00 00 00 00 C9 80 00 00 00 C9 80 00 00 ...?...
    60:00 C9 80 00 00 00 00 00 00 00 00 01 40 7b 00 00??…… ?@{..
    70: E7 00 00 00 00 00 00 00 00 00 00 ff 00 ff 8c 00 00 ?……………………………………………………………………………………… ?...
    80:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.
    90:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.
    A0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.
    B0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.
    C0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.
    D0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.
    E0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.
    F0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.


    adsdev@RogueOne:~$ sudo i2cdump -y -f 0x1 0x40
    未指定大小(使用字节数据访问)
    0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
    00:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
    10:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
    20: 00 00 01 04 00 01 00 03 0c ff 00 00 00 04………………………………………………………………………………………………………………… ?
    30:02 1a 22 C2 02 02 00 80 00 00 00 XX??????……XX
    40:C0 ff 02 XX XX D7 D7 00 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX ...XXX?...XXXXXX
    50:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX 00 00 00 00 00 00 XXXXXXXXXXXX……
    60:44 10 00 00 00 00 00 00 00 00 00 00 00 00 00 0f 40 D?.......... ?@
    70:00 00 00 00 00 00 00 00 00 3D 00 00 00 00 02 XX =。。。 ?X
    80:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
    90:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
    A0:00 00 01 04 00 01 00 03 0C ff 00 00 04 ..??.. ?
    B0:02 1a 22 C2 02 00 00 80 00 00 00 XX?"??... XX
    C0:C0 ff 02 XX XX D7 D7 00 XX XX XX XX XX XX XX XX XX XX XX XX XX XX ...XXX?...XXXXXX
    D0:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX 00 00 00 00 00 00 XXXXXXXXXXXX……
    E0:44 10 00 00 00 00 00 00 00 00 00 00 00 00 00 0f 40 D?.......... ?@
    F0:00 00 00 00 00 00 00 00 3D 00 00 00 00 00 00 00 XX =…… X

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

    我认为 i2c 通信在芯片 0x40上运行不太好。

    请向硬件部门寻求支持。

    adsdev@RogueOne:~$ sudo i2cdump -y -f 0x1 0x40
    未指定大小(使用字节数据访问)
    0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
    00:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
    10:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
    20: 00 00 01 04 00 01 00 03 0c ff 00 00 00 04………………………………………………………………………………………………………………… ?
    30:02 1a 22 C2 02 02 00 80 00 00 00 XX??????……XX
    40:C0 ff 02 XX XX D7 D7 00 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX ...XXX?...XXXXXX
    50:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX 00 00 00 00 00 00 XXXXXXXXXXXX……
    60:44 10 00 00 00 00 00 00 00 00 00 00 00 00 00 0f 40 D?.......... ?@
    70:00 00 00 00 00 00 00 00 00 3D 00 00 00 00 02 XX =。。。 ?X
    80:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
    90:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
    A0:00 00 01 04 00 01 00 03 0C ff 00 00 04 ..??.. ?
    B0:02 1a 22 C2 02 00 00 80 00 00 00 XX?"??... XX
    C0:C0 ff 02 XX XX D7 D7 00 XX XX XX XX XX XX XX XX XX XX XX XX XX XX ...XXX?...XXXXXX
    D0:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX 00 00 00 00 00 00 XXXXXXXXXXXX……
    E0:44 10 00 00 00 00 00 00 00 00 00 00 00 00 00 0f 40 D?.......... ?@
    F0:00 00 00 00 00 00 00 00 3D 00 00 00 00 00 00 00 XX =…… X

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

    是0x4c 吗? 我不知道为什么0x4c 现在成为 UU? 它在 UU 位置中的值为0x4c。

    adsdev@RogueOne:~$ sudo i2cdetect -r -y 1
    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00:------- ----
    10:------- ------- ------- --
    20:------- ------- ------- --
    30:------- ------- ------- --
    40: 40 ------- ------- 乌伊乌伊乌伊乌伊乌伊乌伊乌伊乌伊乌伊乌伊
    50:------ 54 ------- ------- --
    60:--------------- -------
    70:------- ----

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

    我把它弄明白了。 UU 意味着有一个使用此地址的驱动器。 很有道理。 因此器件应为0x4c。  

    对于0x40、我们必须怎么做? 0x40用于什么? 谢谢。

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

    0x4c 部件中的通信是否正常?

    adsdev@RogueOne:~$ sudo i2cdump -y -f 0x1 0x4c
    未指定大小(使用字节数据访问)
    0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
    00:00 00 00 00 00 05 00 00 00 00 00 00 01 02 03 04 ..... ??.0?????
    10:05 06 07 02 48 ff 10 10 04 20 02 08 00 02 40??H?? ?????@
    20:00 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "
    30:00 00 00 00 ff 00 00 00 00 00 00 00 00 00 00 C9 80........... ???
    40:00 00 00 00 C9 80 00 00 00 C9 80 00 00 C9 80 00 ...?...???
    50:00 00 00 C9 80 00 00 00 00 C9 80 00 00 00 C9 80 00 00 ...?...
    60:00 C9 80 00 00 00 00 00 00 00 00 01 40 7b 00 00??…… ?@{..
    70: E7 00 00 00 00 00 00 00 00 00 00 ff 00 ff 8c 00 00 ?……………………………………………………………………………………… ?...
    80:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.
    90:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.
    A0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.
    B0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.
    C0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.
    D0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.
    E0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.
    F0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.