4

我有一个基于 imx28 CPU 的定制板。CPU 的串行端口连接到调制解调器的 PCM 输出。我必须为调制解调器的 PCM 接口开发一个驱动程序才能成为 ALSA SoC 的一部分。您能否指出内核树​​中与我的设置重新组合的一些驱动程序?

4

1 回答 1

3

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

  • 编解码器驱动程序:这些定义了音频控制、接口功能、DAPM 定义和编解码器 I/O 功能。在这种情况下,您的调制解调器被视为“编解码器”。在这种情况下,您的 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) 外设的示例代码,这是您感兴趣的。

于 2012-11-15T22:52:58.243 回答