RK3506 外设收官:音频点亮

📅 发布时间:2026/7/10 18:15:05
RK3506 外设收官:音频点亮 RK3506 外设收官:音频点亮rk-forge 已经开源带你从零把一颗几乎没人理的 RK3506用主线 Linux7.1 主线 U-Boot 一路跑到rk3506 login:——可按序打上去的补丁库、诚实的差距报告、完整 bringup 教程都在这。欢迎观摩喜欢点个⭐仓库地址https://github.com/Awesome-Embedded-Learning-Studio/rk-forge静态网页https://awesome-embedded-learning-studio.github.io/rk-forge/有朋友反馈说希望有PDF渲染的版本您可以戳戳https://github.com/Awesome-Embedded-Learning-Studio/rk-forge/releases/tag/pdf%2F2026-06-23-1120或者有其他更新的版本。因为我怕放百度网盘会被发文平台一脚踹飞所以如果不方便上Github的朋友可以私信我要一下百度网盘链接外设系列最后一章。RK3506 这块板的音频是 ES8388 codec SAI1 数字接口 PL330 DMA 三件套。三样主线驱动都在但两样缺 RK3506 的接线SAI 缺 of_match、PL330 的 DMA 请求要过一个 GRF crossbar主线那个单 cell 的 xlate 不认。这章把数字链路点亮——aplay/mpg123 能干净播完、声卡注册。真出声还得等耳机线板上的耳机接口得接线但数字链路这一关板上过了。三个件两处缺接线音频链路是ES8388(codec) ↔ SAI1(数字接口) ↔ PL330(DMA)。ES8328 这个 codec 主线驱动在SND_SOC_ES8328_I2CSAI 主线rockchip_sai.c也在但of_match 里没有 rk3506DMA 这边RK3506 的 DMA 请求要过一个 GRF 的 crossbar而主线of_dma_pl330_xlate是单 cell 的不认 RK3506 那个 5-cell 的编码dmas dmac chan mux_reg val …。所以这一章是 0009驱动SAI of_match PL330 5-cell dmamux加 0010DTsai1 dmac0/dmac1 es8388 simple-card。几个 gotcha跑通这条链踩了几个坑记一下。一是 ES8328 的 I2C 驱动SND_SOC_ES8328_I2C是个隐藏 tristate得它依赖的SOUND/SND_SOC都开了才会出现在 menuconfig别满世界找它找不到。二是 codec 的set_sysclk要喂12288000不是随便一个频率时钟不对 HAL 起不来。三是 SAI1 的 pinctrl 跟 i2c0 在 PB5/PB6 上冲突所以 sai1 只用 sdo0stereo避开 i2c0。四是板子默认 muteaplay 不出声先别慌alsamixer把通路 unmute。还有 configSOUNDySND_SOC_ES8328_I2CySND_SIMPLE_CARDy而且kernel-trim.config不能再砍SOUND之前一度误判为省体积砍过其实是误诊。成功长这样数字链路点亮声卡注册。这些行从全链 boot-sdl-2026-06211109 里截的es8328 0-0011: supply DVDD not found, using dummy regulator ← codec 上线 rockchip-sai ff310000.sai: ... ← 数字接口 ALSA device list: #0: rockchip-es8388 ← 声卡注册ES8388 codec 上线、SAI1 数字接口 probe、ALSA 注册了rockchip-es8388这张声卡。aplay和mpg123 -r 48000在板上能把一首曲子干净播完数字链路这一关过了模拟输出要等耳机线接上才能验证真出声。外设系列走完到这里Ethernet双口通网、SPI、MMC/SD、USB双 host、WiFiRTL8733BU 联网、I2C/UARTRMIO、Audio数字链路全部点亮。一块能开机的砖现在是一块能联网、能插 U 盘、能连 WiFi、能出声的板子了。Display屏幕等 LCD 到位再补。给板子拍张照外设系列完结撒花。