一、 调试大纲
调试正式开始之前,想办法获取以下信息:硬件设计原理图/Codec参考驱动代码/FAE联系方式。
1. 从硬件设计原理图,我们要获取到Codec芯片和CPU通过什么接口连接,包括数据传输接口、控制接口、reset和power引脚。

2. Codec参考驱动代码,一般正规的厂商都会提供的,至少也提供对应场景的寄存器配置。
接下来开始正式调试,大致分为以下流程:
a. 数据总线配置
b. codec驱动集成
c. 把codec挂载到声卡上
d. 音频空间封装以及调用
e. 音效优化
二、数据总线配置
第三方Codec芯片一般是I2S总线/PCM总线进行数据传输,配置方法基本相同。
这一步是脱离Codec芯片,至于CPU侧有关系。
当配置完成后,可以通过以下指令进行测试总线属性,以I2S为例:
a. 先向设备导入一首测试音频test.wav
b.执行以下指令进行测试
tinymix "QUAT_MI2S_RX Audio Mixer MultiMedia1" "1"
tinyplay /sdcard/test.wav -D 0 -d 0 &
c. 这个时候就可以使用示波器测量QUAT_MI2S对应GPIO,进而测得当前的位时钟、采样率和位深度配置。
三、Codec驱动集成
这一步主要比较基础但也至关重要,需要多和厂商FAE沟通。
四、Codec挂载到声卡
修改文件:kernel/msm-3.18/sound/soc/msm/msm8952.c
修改内容:
@@ -2357,8 +2388,8 @@ static struct snd_soc_dai_link msm8952_dai[] = {
.stream_name = "Quaternary MI2S Capture",
.cpu_dai_name = "msm-dai-q6-mi2s.3",
.platform_name = "msm-pcm-routing",
- .codec_dai_name = "snd-soc-dummy-dai",
- .codec_name = "snd-soc-dummy",
+ .codec_dai_name = "ES7243E Hi
148




被折叠的 条评论
为什么被折叠?



