Rockchip DAI 控制器机制与实现详解

Rockchip DAI 控制器机制与实现详解

源码路径rk3588/kernel-6.1/sound/soc/rockchip/
文档目录linuxDoc/sound/


目录


一、原理

本源码树为 Rockchip 多代 SoC 提供 I2S/TDMPDMSAISPDIF 等驱动;其中 RK3588 DTS/匹配表明确使用 I2S/TDM、PDM、SPDIF、SPDIFRX(以后者的 rk3308-spdifrx fallback 匹配)。rockchip_sai.c 只有通用 rockchip,sai-v1 匹配,不能仅凭源码存在认定 RK3588 集成或启用 SAI。驱动作为 ASoC CPU DAI component

  • 解析 设备树(clocks、dma-names、TDM slot)
  • 实现 snd_soc_dai_opshw_paramsset_fmttrigger
  • 通过 DMAengine 与 PCM 环缓冲交互

compatible 区分 SoC 代际(如 rockchip,rk3588-i2s-tdm)。


二、I2S/TDM

rockchip_i2s_tdm.c / rockchip_i2s_tdm.h(主路径,~2700+ 行):

能力 说明
TDM slot 多声道时分复用(8ch 等)
TXCR/RXCR 数据格式、时钟边沿、PCM/TDM 模式
多 lane CONFIG_SND_SOC_ROCKCHIP_I2S_TDM_MULTI_LANES
TRCM 时隙路由(rockchip_trcm.c

连接外置 Codec(I2C 控制)或 HDMI IP 的 I2S 输入。

旧版 rockchip_i2s.c:早期 RK 芯片,3588 以 TDM 为主。


三、PDM 与 SAI

驱动 用途
rockchip_pdm.c PDM 数字麦(rk3588-pdm
rockchip_pdm_v2.c PDM 第二代 IP;本分支匹配 RK3506/RK3576/RV1126B,不匹配 RK3588
rockchip_sai.c Serial Audio Interface

适用于 麦克风阵列、语音前端;常与 VADDLP 配合。


四、SPDIF

  • rockchip_spdif.c:S/PDIF 输出(rk3588-spdif
  • rockchip_spdifrx.c:S/PDIF 输入

用于光纤/同轴数字音频,消费类 RK 板较少。


五、公共与工具

文件 作用
rockchip_utils.c 时钟、复位、常用配置
rockchip_utils.h 共享声明
rockchip_dummy_dai.c 占位 DAI

时钟:依赖 HAVE_CLK,从 CRU/CCU 获取 MCLK/BCLK/LRCK


附录

Kconfig 模块
SND_SOC_ROCKCHIP_I2S_TDM i2s-tdm
SND_SOC_ROCKCHIP_PDM pdm
SND_SOC_ROCKCHIP_SAI sai

下一篇04 Machine/HDMI

文章互动

阅读 --

留言

0 条留言

正在加载留言…