硬件结构
RK3308ADUIO说明
硬件框图,分为内置code和外挂code,硬件连接方式如下图:
软件结构
基于硬件框架,软件上使用ASOC架构,软件代码有两套,在创machine的时候,二者有区别,内置code使用multicode创建,外置code使用simple_card创建;
内置code架构说明:
code dai driver:
sound/soc/codecs/rk3308_codec.c
sound/soc/rockchip/rockchip_vad.c
cpu dai driver:
sound/soc/rockchip/rockchip_i2s_tdm.c
machine:
sound/soc/rockchip/rockchip_multicodecs.c
外置code架构说明(以TI的571x系列为例):
code driver:
sound/soc/codecs/tas571x.c
cpu driver:
sound/soc/rockchip/rockchip_i2s_tdm.c
machine:
sound/soc/generic/simple-card.c
调试记要
TAS5805的初始化:
初始化5805需要I2S的BCLK,RLCLK稳定输出,且没有数据输出,才可以初始化5805的音效寄存器,不然后续5805的音效寄存器会复位