音频Codec适配说明
概述
本章主要描述音频的概念,以及添加声卡调试声卡的的说明。
相关概念:
DAI
: Digital Audio Interface 数字音频接口CPU DAI
:CPU
侧的数字音频接口,可以理解为X3
的I2S
接口CODEC DAI
:即Codec
。控制Codec
工作流,简单理解为Codec
的驱动DAI LINK
:绑定CPU DAI
和CODEC DAI
PLATFORM
:指定CPU
侧的平台驱动,通常是DMA
驱动
音频开发说明
一个完整的声卡信息由CPU DAI
,CODEC DAI
,PLATFORM
,DAI LINK
组成。分别对应i2s
驱动,codec
的驱动,dma
驱动,以及声卡驱动,如source/kernel/sound/soc/hobot/hobot-snd-wm8960.c
。本章节以新增WM8960
这款双声道全双工Codec
为例说明如何添加声卡。
I2S参数
X3芯片的I2S有以下特性:
-
通道支持:音频输入支持
1/2/4/8/16
通道输入;音频输出支持1/2
通道输出 -
采样率支持:
8k/16k/32k/48k/44.1k/64k
-
采样精度支持:
8bit/16bit
-
传输协议支持:
i2s/dsp(TDM)A
-
I2S做master模式下的默认时钟:mclk为12.288M bclk为2.048M。mclk不发生变化的情况下,bclk支持6.144M、4.096M、3.072M、2.048M、1.536M,根据应用层传输的参数动态调整,调频策略在sound/soc/hobot/hobot-cpudai.c的hobot_i2s_sample_rate_set函数中.对于44.1k采样率的支持,在不调整PLL的情况下,可以调整出的最接近频率44.11764khz
-
I2S做slave,在需要读写i2s寄存器操作前,需要有bclk时钟灌入,否则会访问i2s模块寄存器异常,导致系统不能正常工作
针对板级RDM X3 Module
,还有以下限制:
- 仅引出
I2S0
的所有时钟信号(BCLK
,LRCK
,),I2S1