主题中讨论的其他器件:TLV320AIC3204、 TLV320AIC3106
工具/软件:Linux
尊敬的 TI 团队:
我们正在设计 AI 智能扬声器项目。 我们在电路板上使用了 AM3352和 TLV320AIC3204器件。 我们在 4.4.4.30使用内核版本、并在 defconfig 文件中为 TLV320AIC3204音频添加了"CONFIG_SND_SOC_TLV320AIC32X4"、并将其构建到内核驱动程序(而不是内核模块)中。 除此之外、我修改 DTS 文件以将其集成到 ALSA 音频-简单-编解码器中。 下面是我的 DTS 文件。
-引导后,我键入"aplay -l "命令,日志为:
根目录@BeagleBone:~# aplay -l
aplay:device_list:268:找不到声卡...
- dmesg | grep tlv 查看日志:
[2.327225] tlv320aic32x4 1-0018:获取 MCLK 失败。 如果没有 MCLK、当前的执行不支持使用这个编解码器。
我还尝试使用链接 http://mailman.alsa-project.org/pipermail/alsa-devel/2015-June/094297.html 上的补丁文件传递此错误。 但是、它似乎不适合这种情况。
-您能帮助回答我的问题吗、如下所示:
+如何在内核源代码中启用 tlv320aic32x4驱动程序?
+ DTS 文件非常重要。 您能否举几个例子来说明如何写 DTS 文件来解决此问题?
请参阅下面的 DTS 文件:
*版权所有(C) 2012德州仪器(TI)公司- http://www.ti.com/
*
*此程序是免费软件;您可以重新分发和/或修改
*根据 GNU 通用公共许可证第2版的条款,如所示
*由免费软件基金会发布。
*
/DTS-v1/;
#include "am33xx.dtsi"
#include "AM335x-bone-common.dtsi"
/*大圆:选择一个:*/
/*
*/etc/modprobe.d/pruss-blacklist.conf
*
*将 uio_pruss 列入黑名单
*
/*#include "am33xx-pruss-rproc.dtsi"*
/*
*/etc/modprobe.d/pruss-blacklist.conf
*
*黑名单桁架
*黑名单 pruss_intc
*将 PRU-rproc 列入黑名单
*
/*#include "am33xx-pruss-uio.dtsi"*
/{
型号="TI AM335x BeagleBone Black";
兼容="ti、am335x-bone-black"、"ti、am335x-bone-"、"ti、am33xx";
};
ldo3_reg{(&L)
稳压器最小微伏=<1800000>;
稳压器最大值微伏=<1800000>;
稳压器常开;
};
mmc1{(&M)
VMMC-SUPPLY =<&vmmcsd_fixed>;
};
mmc2{(&M)
VMMC-SUPPLY =<&vmmcsd_fixed>;
pinctrl-names ="default";
pinctrl-0 =<&eMMC_PINs>;
总线宽度=<8>;
状态="正常";
};
CPU0_OPP_TABLE{
/*
*所有 PG 2.0器件可能都不支持1GHz、但有些器件支持较早的频率
* BeagleBone Black 具有可保证的 PG 2.0器件
*支持1GHz OPP、因此请在此板上启用 PG 2.0。
*
硝基平@1000000000{
opp-supported-HW =<0x06 0x0100>;
};
};
am33xx_pinmux{(am33xx_pinmux)}
McASP0_Pins:McASP0_Pins{
pinctrl-single、pins =<
AM33XX_IOPAD (0x9A8、PIN_INPUT_PULLUGDOWN | MUX_MODE0)/* McASP0_axr1.McASP0_axr1 AM335X_McASP0_AXR1 *
AM33XX_IOPAD (0x998、PIN_INPUT 下拉| MUX_MODE0)/* McASP0_axr0.McASP0_axr0 AM335X_McASP0_AXR0 *
AM33XX_IOPAD (0x994、PIN_INPUT_PULLUGDOWN | MUX_MODE0)/* McASP0_FSX.McASP0_FSX AM335X_McASP0_FSX *
AM33XX_IOPAD (0x990、PIN_INPUT_PULLDOWN | MUX_MODE0)/* McASP0_aclkx.McASP0_aclkx AM335X_McASP0_ACLKX *
>;
};
i2c2_pins:pinmux_i2c2_pins{
pinctrl-single、pins =<
0x150 0x72 /* spi0_scl.i2c2_sda、SLEWCTRL_SLOW | INPUT_PULLUP |Mode2*/
0x154 0x72 /* spi0_d0.i2c2_SCL、SLEWCTRL_SLOW | INPUT_PULLUP | Mode2*/
>;
};
i2c1_pins:pinmux_i2c1_pins{
pinctrl-single、pins =<
0x168 (PIN_INPUT_PULLUP | MUX_MODE3)/* uart0_CTSN.i2c1_sda AM335X_I2C1_SDA *
0x16C (PIN_INPUT_PULLUP | MUX_MODE3)/* uart0_rtsn.i2c1_SCL AM335X_I2C1_SCL *
>;
};
};
i2c1{(&I)
pinctrl-names ="default";
pinctrl-0 =<&i2c1_PINs>;
状态="正常";
时钟频率=<100000 >;
tlv320aic32x4:tlv320aic32x4@18{
#sound-di-cells =<0>;
兼容="ti、tlv320aic32x4";
reg =<0x18>;
};
};
&McASP0{
#sound-di-cells =<0>;
pinctrl-names ="default";
pinctrl-0 =<&McASP0_PINs>;
状态="正常";
OP-MODE =<0>;/* MCASP_IIS_MODE */
TDM-SLOTS =<2>;/*表示通过一个串行器发送或接收的通道数。 *
serial-dir =</* 0:非活动、1:TX、2:Rx *
1 2 0 0
>;
tx-num-evt =<32>;
Rx-num-evt =<32>;
};
/{
听起来{
兼容="简单音频卡";
simple-audio-card、name ="tlv320aic32x4";
simple-audio-card、小工具=
"耳机"、"耳机插孔"、
"线路"、"线路输入";
简单音频卡,路由=
"耳机插孔"、"HPL"、
"耳机插孔"、"HPR"、
"IN1_L"、"线路输入"、
"IN1_R"、"线路输入";
simple-audio-card、format ="I2S";
simple-audio-card、bitclock-master =<&sound_master>;
simple-audio-card、frame-master =<&sound_master>;
简单音频卡、位时钟反转;
简单音频卡、CPU{
Sound-Dai =<&McASP0>;
};
sound_master:simple-audio-card、codec{
sound-dai =<&tlv320aic32x4>;
系统时钟频率=<12000000>;
};
};
};

