Alsa与调制解调器的PCM接口

时间:2012-07-31 12:51:03

标签: linux kernel driver embedded-linux alsa

我有一个基于imx28 CPU的自定义主板。 CPU的串行端口连接到调制解调器的PCM输出。我必须为调制解调器的PCM接口开发一个驱动程序,使其成为ALSA SoC的一部分。你能指出内核树​​中的一些驱动程序可以重新设置我的设置吗?

1 个答案:

答案 0 :(得分:1)

请参阅Linux源代码中的Documentation/sound/alsa/soc目录。它解释了ASoC驱动程序如何分为三类:

  • 编解码器驱动程序:它们定义音频控件,接口功能,DAPM定义和编解码器I / O功能。这是你的调制解调器,在这种情况下被认为是“CODEC”。在这种情况下,您的CODEC驱动程序可能非常小,只需定义PCM采样率(假设它是固定的,例如8000个采样/秒)和数据格式(例如16位线性)。
    • 查看sound/soc/codecs中的源代码
      • 如果您有i.MX28 EVK(评估套件),请特别关注sgtl5000.cmxs_spdif.c,因为i.MX28 EVK有这两个CODEC,您可以看到驱动程序如何让他们工作。
  • 平台驱动程序:用于平台的音频DMA引擎和音频接口驱动程序(特别是适合您的情况的PCM),该平台是飞思卡尔MXS芯片系列。
  • 机器驱动程序:任何特定于机器的控件和音频事件。

对于平台和计算机驱动程序,请参阅sound/soc/mxs中的以下文件。我不太清楚哪些被认为是“平台驱动程序”,哪些是“机器驱动程序”,因为它们没有明确说明它。

  • mxs-spdif.cmxs-spdif-dai.c,用于S / PDIF编解码器的S / PDIF接口(仅输出)。
  • mxs-devb.cmxs-dai.c,用于SGTL5000 CODEC的SAIF接口。
  • 我认为
  • mxs-pcm.c处理DMA内容。

但我不知道i.MX28上是否有同步串口(SSP)外设的示例代码,这是您感兴趣的内容。