主题中讨论的其他器件: PCM5102A
大家好、
客户在 PCM1864EVM 中实施应用时遇到问题。 下面是详细信息。
"
我们将 PCM1864EVM 与 BeagleBone Black 结合使用、以通过 TDM 访问所有四个麦克风。
为此、我们使用的是 TI SDK Linux 处理器。 我们正在使用 pcm5102a.c 驱动程序编译 Linux 内核
//pcm5102a.c.
/*
用于 PCM5102A 编解码器的*驱动程序
*
作者:Florian Meier
*版权所有2013
*
*此程序是免费软件;您可以重新分发和/或
*根据 GNU 通用公共许可证的条款对其进行修改
*由免费软件基金会发布的版本2。
*
*本计划的分发是为了希望它将会有用,但是
*无任何保证;甚至没有的暗示保证
*适销性或特定用途的适用性。 请参阅 GNU
*通用公共许可证,了解更多详细信息。
*
#include
#include
#include
#include
静态结构 snd_soc_da_driver pcm5102a_dai ={
.name ="pcm5102a-hifi"、
.playback ={
CHANNES_MIN = 2、
.channels_max = 2、
.RAates = SNDRV_PCM_RATE _8000_192000、
.formats = SNDRV_PCM_FMTBIT_S16_LE |
SNDRV_PCM_FMTBIT_S24_LE |
SNDRV_PCM_FMTBIT_S32_LE
}、
.capture ={
.stream_name ="捕捉"、
CHANNES_MIN = 1、
.channels_max = 4、
.RAates = SNDRV_PCM_RATE _8000_192000、
.formats = SNDRV_PCM_FMTBIT_S16_LE |
SNDRV_PCM_FMTBIT_S24_LE |
SNDRV_PCM_FMTBIT_S32_LE
}、
};
静态结构 snd_soc_component_driver soc_component_dev_pcm5102a ={
IDLE_BIAS_ON = 1、
.use_pmdown_time = 1、
字节序= 1、
.non_legacy_da_naming = 1、
};
静态 int pcm5102a_probe (struct platform_device *pdev)
{
返回 devm_snd_soc_register_component (&pdev->dev、&osc_component_dev_pcm5102a、
pcm5102a_dai、1);
}
静态常量结构 of _device_id pcm5102a_of _match[]={
{.compatible ="ti、pcm5102a"、}、
{}
};
MODULE_DEVICE_TABLE (of、pcm5102a_for_match);
静态结构 platform_driver pcm5102a_codec_driver ={
.probe = pcm5102a_probe、
.driver ={
.name ="pcm5102a-codec"、
.of 匹配表= pcm5102a_of 匹配、
}、
};
MODULE_Platform_driver (pcm5102a_codec_driver);
MODULE_DESCRIPTION ("ASOC PCM5102A 编解码器驱动程序");
MODULE_Author ("Florian Meier ");
MODULE_LICENSE ("GPL v2");
并使用有关编解码器和 McASP1引脚的信息编译.dts 文件
//pcm5102a.dtsi
am33xx_pinmux{(am33xx_pinmux)}
McASP1_PINS:McASP1_PINS{
pinctrl-single、pins =<
/*接收器必须启用接收器*/
AM33XX_IOPAD (0x9a0、PIN_INPUT 下拉| MUX_MODE3)
AM33XX_IOPAD (0x9a4、PIN_INPUT 下拉| MUX_MODE3)
AM33XX_IOPAD (0x9a8、PIN_INPUT 下拉| MUX_MODE3)
>;
};
};
McASP1{
#sound-di-cells =<0>;
pinctrl-names ="default";
pinctrl-0 =<&McASP1_PINs>;
状态="正常";
OP-MODE =<0>;/* MCASP_IIS_MODE */
TDM-SLOTS =<4>;
num-serializer =<4>;
serial-dir =</* 1 TX 2 RX 0未使用*/
2 0 0 0 0
>;
Rx-num-evt =<32>;
tx-num-evt =<32>;
};
/{
pcm5102a:pcm5102a{
#sound-di-cells =<0>;
兼容="ti、pcm5102a";
状态="正常";
};
Sound1:声音@1{
兼容="简单音频卡";
simple-audio-card、name ="PCM5102a";
simple-audio-card、format ="DSP_A";
simple-audio-card、bitclock-master =<&sound1_master>;
simple-audio-card、frame-master =<&sound1_master>;
简单音频卡、CPU{
Sound-Dai =<&McASP1>;
};
Sound1_MASTER:简单音频卡、编解码器{
#sound-di-cells =<0>;
sound-dai =<&pcm5102a>;
时钟=<&McASP1_Fck>;
时钟名称="MCLK";
};
};
};
简而言之、当我们在 Windows 上使用 GUI (PurePath Console 2)配置寄存器时、我们只能访问4个 TDM 通道。 通过 BBB 上的 I2C 发送寄存器不起作用
"
提前感谢您。
此致、
梅纳德