sound/ 音频子系统机制与原理详解

sound/ 音频子系统机制与原理详解

源码路径rk3588/kernel-6.1/sound/
内核版本:Linux 6.1(RK3588 / ARM64)
文档目录linuxDoc/sound/

Linux 音频栈分为 ALSA Core(字符设备、PCM、控制接口)与 ASoC(SoC 嵌入式:CPU DAI + Codec + Machine)。RK3588 产品几乎走 ASoC + sound/soc/rockchip/,HDMI/扬声器/麦克风由 设备树声卡 描述。


目录


一、分层架构

用户态sound/coresound/socsoc/rockchip硬件/Codecalsa-lib / PulseAudio / tinyalsasound.c minorspcm.c control.csoc-core soc-pcmsoc-dapmi2s_tdm pdm hdmiI2S PDM SPDIF HDMI IPES8388 / HDMI codec / PDM mic
回答的问题
ALSA Core 如何暴露 /dev/snd/pcmC0D0p
ASoC 如何把 CPU、Codec、板级连线成 声卡
Rockchip DAI 如何操作 SoC 内置 I2S/PDM 寄存器与 DMA
Machine 哪条 DAI link、哪个 GPIO 控功放

二、目录职责

目录 体量 职责
core/ 声卡、PCM、混音、控制、proc
soc/ 最大 ASoC 框架 + 各 SoC 厂商 + codecs
soc/rockchip/ 49 文件 RK3588 音频 IP 驱动
usb/ USB Audio Class
hda/ Intel HD Audio(RK 不用)
pci/drivers/ 其它主机接口

sound_core.c:旧版 /dev/dsp 等,与 CONFIG_SOUND 相关;现代播放走 CONFIG_SND


三、RK3588 在树中的位置

  • CPU DAIrockchip,rk3588-i2s-tdmrk3588-pdmrk3588-spdif
  • 板级rockchip_multicodecsrockchip_hdmi 等平台驱动
  • 片上数字 Codecrockchip,rk3588-codec-digital(GRF 配置,非完整 AC97)
  • VADrockchip,rk3588-vad(语音检测,可接 I2S1/PDM0)
  • ASRC/DLP:树中包含采样率转换和环回驱动;其中本分支 Rockchip ASRC match table 不含 RK3588,DLP/ASRC 是否可用必须以 SoC compatible 和板级拓扑为准

独立 sound/drivers/rockchip;RK 代码集中在 soc/rockchip


四、数据流概览

播放(Playback)

1
用户态 write → ALSA PCM → soc-pcm → DAI startup → DMA 到 I2S FIFO → 外置 Codec / HDMI

采集(Capture)

1
PDM/I2S RX → DMA → PCM capture buffer → 用户态 read

DAPM:按 dapm_route 在 stream 开关时自动上电/静音相关 widget,降低 pop 与功耗。


功能组专题

编号 文档
01 ALSA-Core与PCM设备机制与实现详解.md
02 ASoC框架与DAPM机制与实现详解.md
03 Rockchip-DAI控制器机制与实现详解.md
04 Rockchip机器驱动与HDMI机制与实现详解.md
05 Codec与其它音频路径机制与实现详解.md
06 RK3588平台音频拓扑与使用场景详解.md

文章互动

阅读 --

留言

0 条留言

正在加载留言…