brahen 发表于 2013-2-25 09:47:50

大家看看我在linux下更换音频芯片,对接驱动的步骤错在哪里

本帖最后由 brahen 于 2013-2-25 17:16 编辑

原开发板使用的音频芯片是sgtl5000,现要更换其为wm8960。

首先想到的问题是要让内核中有wm8960的驱动。
1、配置linux内核,添加wm8960的驱动。

2、这类soc都是以iic为控制线,iis为数据流的形式工作。
这里略过linux内核检测iic设备的知识点。
所以修改内核代码中的iic设备的代码。由sgtl5000,改成wm8960.


3、由于iis总线式引出去了,所以,没有对原内核中的iis控制器的代码进行修改。
这个图中的芯片是sgtl5000,实际操作的时候,电阻都断开了。也就是说,从mpu的iis接口出来的线全部转接到外部的wm8960测试模块。


编译,烧写运行。


但是出来的结果,却是在内核中确实加载了wm8960的驱动。但是alsa却报错,没有检测到声卡。


winterw 发表于 2013-2-25 10:10:04

你先确保wm8960的通信正常,也就是i2c通信正常。
I2C_BOARD_INFO("sgtl5000",0x0a);
后面的0x0a是i2c设备的地址,你需要看一下wm8960的datasheet上i2c地址是多少。也可以使用i2c_tool来检测一下看能不能检测到,硬件没问题了再找驱动的事。

brahen 发表于 2013-2-25 12:39:26

winterw 发表于 2013-2-25 10:10 static/image/common/back.gif
你先确保wm8960的通信正常,也就是i2c通信正常。
I2C_BOARD_INFO("sgtl5000",0x0a);
后面的0x0a是i2c设备的 ...

wm8960是别人不知道从哪个垃圾里捞出来的,所以能不能用都不知道。

于是,转换思路。从官网下载一个linux内核,修改里面关于这个cpu的板级支持代码,让它去支持sgtl5000。
这样做的目的是验证我之前的步骤有没有出错。

结果发现sgtl5000也驱动不起来。。。。。(sgtl5000的硬件无问题)
其他i2c却设备工作正常。

winterw 发表于 2013-2-25 12:58:26

brahen 发表于 2013-2-25 12:39 static/image/common/back.gif
wm8960是别人不知道从哪个垃圾里捞出来的,所以能不能用都不知道。

于是,转换思路。从官网下载一个linu ...

使用新的linux内核需要重新移植到你的板子上吧?这样不是徒增了工作量了吗?
另外,不知你的wm8960是怎么替换上去的?wm8960有自己的外围电路吧,可以的话你先找个裸奔的cpu来用i2c读取一下wm8960的寄存器,看看能否正常工作,硬件没有问题了你才能再继续往下做.

winterw 发表于 2013-2-25 09:47:51

brahen 发表于 2013-2-25 12:39 static/image/common/back.gif
wm8960是别人不知道从哪个垃圾里捞出来的,所以能不能用都不知道。

于是,转换思路。从官网下载一个linu ...

如果你的旧版内核支持xxx5000,xxx5000也是完好的。
你用新版的kernel来驱动xxx5000不成功,最值得怀疑的是移植的问题,觉得这样测试没有什么意义啊。即使新版kernel支持xxx5000又能证明什么呢?系统移植没有问题,这样跟版本有什们区别吗?

brahen 发表于 2013-2-25 13:40:19

winterw 发表于 2013-2-25 13:04 static/image/common/back.gif
如果你的旧版内核支持xxx5000,xxx5000也是完好的。
你用新版的kernel来驱动xxx5000不成功,最值得怀疑的 ...

用这么2的方法也是有原因的。
一个是手头没什么开发板,都是跑linux的。另一个是我的源码是从mpu的厂商那下的,它已经移植好了。只是它的demo板不是用sgtl5000的芯片。
现在很蛋疼,按理说思路和步骤都很简洁清晰,还跑不起来。

brahen 发表于 2013-2-25 17:16:37

提高悬赏

brahen 发表于 2013-3-20 08:19:38

差点烂尾的帖子。。。。。
只有一个人回答,所以悬赏就给他了。
alsa的音频驱动分codec driver、platform driver和machine driver
由于我只是更换音频芯片,所以需要更改codec和machine。
上图我只改了codec,找到machine driver,把对应的代码也改一下就好了。
页: [1]
查看完整版本: 大家看看我在linux下更换音频芯片,对接驱动的步骤错在哪里