ASoC 驱动程序:哪些文件是平台、机器和编解码器驱动程序?

Swi*_*Run 4 linux audio alsa linux-kernel

在浏览 Linux ASoC 文件时,哪些文件属于以下类别:

  • 平台驱动程序: ? (在 sound/soc/ 中的某个地方?)
  • 机器司机: ? (在 sound/soc/ 中的某个地方?)
  • 编解码器驱动程序: sound/soc/codecs/partname.c

来自内核文档:https : //www.kernel.org/doc/Documentation/sound/alsa/soc/overview.txt

为了实现这一切,ASoC 基本上将嵌入式音频系统分为 3 个组件:-

  • 编解码器驱动程序:编解码器驱动程序与平台无关,包含音频控制、音频接口功能、编解码器 DAPM 定义和编解码器 IO 功能。

  • 平台驱动程序:平台驱动程序包含该平台的音频 DMA 引擎和音频接口驱动程序(例如 I2S、AC97、PCM)。

  • 机器驱动程序:机器驱动程序处理任何特定于机器的控制和音频事件(例如在播放开始时打开放大器)。

另外,这些作品的起点在哪里?(当我找到它们所在的文件时,可能不言自明)

CL.*_*CL. 5

编解码器驱动程序位于 sound/soc/codecs/ 中。

平台驱动程序通常位于 sound/soc/ platform / 中。

机器驱动程序可以在一些特定于 arch 的目录中;那些用于开发板的通常在同一目录中;例如,这是sound/soc/atmel/Makefile

# AT91 平台支持
snd-soc-atmel-pcm-objs := atmel-pcm.o
snd-soc-atmel-pcm-pdc-objs := atmel-pcm-pdc.o
snd-soc-atmel-pcm-dma-objs := atmel-pcm-dma.o
snd-soc-atmel_ssc_dai-objs := atmel_ssc_dai.o

obj-$(CONFIG_SND_ATMEL_SOC) += snd-soc-atmel-pcm.o
obj-$(CONFIG_SND_ATMEL_SOC_PDC) += snd-soc-atmel-pcm-pdc.o
obj-$(CONFIG_SND_ATMEL_SOC_DMA) += snd-soc-atmel-pcm-dma.o
obj-$(CONFIG_SND_ATMEL_SOC_SSC) += snd-soc-atmel_ssc_dai.o

# AT91 机器支持
snd-soc-sam9g20-wm8731-objs := sam9g20_wm8731.o
snd-atmel-soc-wm8904-objs := atmel_wm8904.o
snd-soc-sam9x5-wm8731-objs := sam9x5_wm8731.o

obj-$(CONFIG_SND_AT91_SOC_SAM9G20_WM8731) += snd-soc-sam9g20-wm8731.o
obj-$(CONFIG_SND_ATMEL_SOC_WM8904) += snd-atmel-soc-wm8904.o
obj-$(CONFIG_SND_AT91_SOC_SAM9X5_WM8731) += snd-soc-sam9x5-wm8731.o
obj-$(CONFIG_SND_AT91_SOC_AFEB9260) += snd-soc-afeb9260.o

机器驱动程序文件通常实现平台驱动程序。