Codec 与其它音频路径机制与实现详解
源码路径:
rk3588/kernel-6.1/sound/soc/codecs/、sound/usb/、sound/hda/
文档目录:linuxDoc/sound/
目录
一、Codec 层
sound/soc/codecs/ 实现 hundreds of Codec/I2C 设备 的 ASoC 驱动:
| 类型 | 示例 |
|---|---|
| I2C 音频 Codec | ES8316、ES8388、RT5640、WM8960 |
| HDMI/Display | hdmi-codec.c |
| 功放 | simple-amplifier.c |
| DMIC | spdif_transceiver、dmic |
每个驱动提供 snd_soc_component_driver + snd_soc_dai_driver,与 CPU DAI 格式协商(set_fmt、时钟主从)。
二、RK 相关 Codec
| 文件 | 说明 |
|---|---|
rk_codec_digital.c |
RK3588 片上数字 路径 GRF 配置 |
| Machine 中选型 | rockchip_rt5645、da7219、max98090 等 板级 绑定外置芯片 |
实际 RK3588 板卡常见:ES8388 / ES8311 等(具体以 BSP DTS 为准,可能在 codecs 目录有对应 .c)。
三、USB 音频
sound/usb/(~100+ 文件):
- USB Audio Class 1/2
card.c、pcm.c、mixer.c标准 UAC 流程- 大量 quirks(
quirks.c)修正厂商设备
RK3588 作 USB Host 时可接 USB 声卡;OTG 声卡模式 另涉 gadget 栈(不在 sound/usb 主机路径)。
四、HDA 与其它
| 目录 | RK3588 |
|---|---|
hda/ |
一般不启用(x86 笔记本) |
pci/ |
无关 |
virtio/ |
虚拟机场景 |
soc/sof/ |
Intel/AMD 专用 DSP 框架 |
五、RK3588
- 产品音频 主力:内置 I2S + 外置 Codec + HDMI
- USB 麦克风/声卡:走 usb-audio 模块,与 ASoC 并存第二套 card
- 编解码器 VPU 处理视频轨音频常 不重采样经 ALSA(容器内 FFmpeg),但 HDMI 输出 仍可能用本栈
附录
调试外置 Codec:i2cdetect、检查 sound-dai graph、dmesg | grep asoc。
相关:03 DAI
正在加载留言…