系统组成:
AM4379 <--> McAsp1 <--> IIS <-->Tas2552
Tas2552后端接一个喇叭
当前情况:
1、 驱动源码来自TI官网,源码链接:http://www.ti.com/tool/tas2552sw-linux
2、 操作系统为linux-3.12.10-ti2013.12.01
3、 TI的驱动应该是在比较高版本的linux系统上开发的,直接编译会不成功,将相关的接口修改移植到3.12.10版本上后,编译OK,运行正常。
4、 目前在调试声卡情况如下:
A、 I2C控制正常,读,写寄存口信息正确;
B、 GPIO使能管脚正确;
C、 向linux系统注册声卡成功,能看到声卡设备文件;
D、 通过aplay或者mplayer可以播放音乐,但外接的嗽叭没有声音。
问题现象描述如下:
1、 播放音频文件(mp3,wav)时,喇叭无声音。
2、 播放声音时,在喇叭连线上能看到779KHz的波型,高电平大致为:70ns,低电平:580ns,高电平幅值:5.6v。
3、 频率:FCLK:40.08KHz,MClk:11.9MHz,BClk:使用aplay时:48KHz,mplayer时2.8MHz。
4、 Tas2552芯片上各个管脚电平正常。
5、 音频文件播放结束后,嗽叭上的波型以及各个时钟均结束,不再有波型输出。
目前已经反复排查了codec,mcasp相关的驱动,以及向系统注册声卡的代码,均没有发现问题,麻烦各个专家帮忙看看,什么原因导致无法播放声音。能否提供一个支持linux-3.12的驱动版本?
附:tas2552寄存器信息如下:
驱动加载OK,初始probe结束时的寄存器信息:
===============Func:tas2552_codec_probe===========
All the register of tas2552:
Addr:0x00, --> 0xff
Addr:0x01, --> 0x26
Addr:0x02, --> 0x64
Addr:0x03, --> 0x58
Addr:0x04, --> 0x00
Addr:0x05, --> 0x00
Addr:0x06, --> 0x00
Addr:0x07, --> 0xc8
Addr:0x08, --> 0x10
Addr:0x09, --> 0x00
Addr:0x0a, --> 0x00
Addr:0x0b, --> 0x8f
Addr:0x0c, --> 0x80
Addr:0x0d, --> 0xbe
Addr:0x0e, --> 0x08
Addr:0x0f, --> 0x04
Addr:0x10, --> 0x00
Addr:0x11, --> 0x01
Addr:0x12, --> 0x00
Addr:0x13, --> 0x40
Addr:0x14, --> 0x0f
Addr:0x15, --> 0xff
Addr:0x16, --> 0xff
Addr:0x17, --> 0xff
Addr:0x18, --> 0xff
Addr:0x19, --> 0x00
播放音乐时的寄存器配置信息:
===============Func:tas2552_mute===========
All the register of tas2552:
Addr:0x00, --> 0x20
Addr:0x01, --> 0x10
Addr:0x02, --> 0xec
Addr:0x03, --> 0x58
Addr:0x04, --> 0x00
Addr:0x05, --> 0xc4
Addr:0x06, --> 0x00
Addr:0x07, --> 0xc8
Addr:0x08, --> 0x20
Addr:0x09, --> 0x00
Addr:0x0a, --> 0x00
Addr:0x0b, --> 0x8f
Addr:0x0c, --> 0x80
Addr:0x0d, --> 0xc0
Addr:0x0e, --> 0x28
Addr:0x0f, --> 0x04
Addr:0x10, --> 0x00
Addr:0x11, --> 0x01
Addr:0x12, --> 0x00
Addr:0x13, --> 0x40
Addr:0x14, --> 0x0f
Addr:0x15, --> 0x00
Addr:0x16, --> 0x08
Addr:0x17, --> 0x00
Addr:0x18, --> 0x00
Addr:0x19, --> 0xe6
音乐结束时的寄存器信息:
===============Func:tas2552_mute===========
All the register of tas2552:
Addr:0x00, --> 0x20
Addr:0x01, --> 0x14
Addr:0x02, --> 0xec
Addr:0x03, --> 0x58
Addr:0x04, --> 0x00
Addr:0x05, --> 0xc4
Addr:0x06, --> 0x00
Addr:0x07, --> 0xc8
Addr:0x08, --> 0x20
Addr:0x09, --> 0x00
Addr:0x0a, --> 0x00
Addr:0x0b, --> 0x8f
Addr:0x0c, --> 0x80
Addr:0x0d, --> 0xc0
Addr:0x0e, --> 0x28
Addr:0x0f, --> 0x04
Addr:0x10, --> 0x00
Addr:0x11, --> 0x01
Addr:0x12, --> 0x00
Addr:0x13, --> 0x40
Addr:0x14, --> 0x0f
Addr:0x15, --> 0x00
Addr:0x16, --> 0x08
Addr:0x17, --> 0x00
Addr:0x18, --> 0x00
Addr:0x19, --> 0xe6