2012-07-31 64 views
3

我有一个基于imx28 CPU的自定义板。 CPU的串口连接到调制解调器的PCM输出。我必须为调制解调器的PCM接口开发驱动程序,使其成为ALSA SoC的一部分。你能指出内核树​​中的一些驱动程序是否适合我的设置?Alsa与调制解调器的PCM接口

回答

1

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

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

有关平台和机器驱动程序,请参阅sound/soc/mxs中的以下文件。我不清楚哪些被视为“平台驱动程序”,哪些是“机器驱动程序”,因为他们没有清楚地说明。

  • mxs-spdif.cmxs-spdif-dai.c,这些都为S/PDIF接口到S/PDIF CODEC(仅输出)。
  • mxs-devb.c and mxs-dai.c,它们用于SGTL5000编解码器的SAIF接口。
  • mxs-pcm.c我认为它处理DMA的东西。

但我不知道是否有用于同步串行端口(SSP)的i.MX28,这是你所感兴趣的外设示例代码。