Rockchip 机器驱动与 HDMI 机制与实现详解

Rockchip 机器驱动与 HDMI 机制与实现详解

源码路径rk3588/kernel-6.1/sound/soc/rockchip/(machine)、soc/codecs/rk_codec_digital.c
文档目录linuxDoc/sound/


目录


一、Machine 驱动角色

Machine(平台驱动)填充 struct snd_soc_card

  • dai_link[]:CPU DAI ↔ Codec DAI 连接、格式 DAIFMT
  • dapm_routes:耳机/喇叭/麦克风路径
  • GPIO:功放使能、耳机检测
  • 可选:jackextconADC 按键

RK 板级常由 设备树 sound 节点 + 驱动 probe 解析子节点完成。


二、multicodecs

rockchip_multicodecs.cDRV_NAME "rk-multicodecs"):

特性 说明
多 Codec dai_link[3],支持多路 I2C Codec
耳机检测 GPIO / ADC 电压检测 / codec_hp_det
extcon 与 Type-C 音频切换协同
jack snd_soc_jack 上报 headset

适用于 RK3308 等 多 Codec 音箱方案;RK3588 产品可复用或参考 DT 写法。


三、HDMI 音频

rockchip_hdmi.crk-hdmi-sound):

  • 链接 CPU I2Shdmi-codecSND_SOC_HDMI_CODEC
  • DRM HDMI 驱动配合,音频随显示输出
  • 可选 HDMI jack 检测热插拔

本树 RK3588 活跃路径是 rockchip_hdmi.c + soc/codecs/hdmi-codec.c + DRM codec callbacksrockchip_hdmi_dp.crockchip_cdndp.c 虽保留在源码目录中,但没有加入 sound/soc/rockchip/Makefile,属于不可直接使用的遗留文件。

RK3588 常见板级映射:

  • HDMI0/1:I2S5/I2S6,常用 mclk-fs = <128>
  • DP0/1:SPDIF TX2/TX5,常用 mclk-fs = <512>
  • HDMI-IN:HDMI RX → I2S7 capture。

编解码盒 HDMI 输出带音频 时,用户态播放到 card 的 HDMI PCM 即可。


四、VAD ASRC DLP

模块 文件 作用
VAD rockchip_vad.c 硬件语音活动检测;RK3588 映射 I2S1_8CH、PDM0 地址
ASRC rockchip_asrc.c 异步采样率转换;本分支只匹配 RK3506/RK3576,不能直接归入 RK3588
DLP rockchip_dlp.c 数字环回:Mic/Loopback 多通道模式
multi_dais rockchip_multi_dais.c 聚合多 DAI 为单一 PCM

VAD 含 ARM64 预处理汇编vad_preprocess_arm64.S)。


五、片上数字 Codec

soc/codecs/rk_codec_digital.c

  • rockchip,rk3588-codec-digital
  • 通过 GRF 寄存器(如 RK3588_GRF_SOC_CON6)做 SOC 侧数字音频开关配置
  • 完整模拟 Codec,常与 HDMI/内置路径配合

附录

平台驱动 典型芯片
rockchip_rt5645.c RK3399 等
rk3399_gru_sound.c Chromebook GRU

RK3588 新品以 DT + i2s_tdm + hdmi/multicodecs 为主,不局限上述遗留模块。

相关06 RK3588 拓扑

文章互动

阅读 --

留言

0 条留言

正在加载留言…