• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
主题 : Tiny6410,linux怎么加载I2S驱动 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 34711
精华: 0
发帖: 45
金钱: 235 两
威望: 47 点
综合积分: 90 分
注册时间: 2010-12-20
最后登录: 2011-10-27
楼主  发表于: 2011-07-29 08:43

 Tiny6410,linux怎么加载I2S驱动

Tiny6410开发板上默认的是AC97的声卡驱动,由于音频指标不好,所以想换为I2S驱动,内核里我已经找到了I2S的驱动代码,应该已经编译进内核,但是我怎么才能在程序中调用I2S驱动呢?
请高手指点,谢谢啦!
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
1楼  发表于: 2011-07-29 09:56
这是需要移植的

根据你采用的codec 芯片, 你需要自己实现一个ASoC Machine (or board) driver, 内核中应该已经有基于I2S的machine driver供参考
级别: 新手上路
UID: 34711
精华: 0
发帖: 45
金钱: 235 两
威望: 47 点
综合积分: 90 分
注册时间: 2010-12-20
最后登录: 2011-10-27
2楼  发表于: 2011-07-29 10:14

 回 1楼(911gt3) 的帖子

现在系统在启动的时候会自动检测AC97的声卡,如果检测不到报错。
AC97: Unable to activate!
AC97: Unable to activate!
AC97: Unable to read!
AC97: Unable to activate!
AC97: Unable to activate!
AC97: Unable to read!
AC97: Unable to activate!
AC97: Unable to activate!
AC97: Unable to read!
Failed to reset WM9713: AC97 link error
现在的问题是我不想用AC97,想让系统启动的时候自动加载I2S驱动,应该是在启动函数里改吧?
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
3楼  发表于: 2011-07-29 10:19
make menuconfig, 去掉wm9713 即可

至于要增加 I2S 的, 1楼已经说过了, 这不是配置一下能搞定的
级别: 新手上路
UID: 34711
精华: 0
发帖: 45
金钱: 235 两
威望: 47 点
综合积分: 90 分
注册时间: 2010-12-20
最后登录: 2011-10-27
4楼  发表于: 2011-07-29 10:24

 回 3楼(911gt3) 的帖子

如果我要用I2S芯片的话,自己写个驱动,编译成模块,用的时候insmod一下就可以了嘛?
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
5楼  发表于: 2011-07-29 10:33
编译成模块还是编译到内核, 这不是问题, 关键是要先实现这个驱动
级别: 新手上路
UID: 34711
精华: 0
发帖: 45
金钱: 235 两
威望: 47 点
综合积分: 90 分
注册时间: 2010-12-20
最后登录: 2011-10-27
6楼  发表于: 2011-07-29 10:53

 回 5楼(911gt3) 的帖子

这个驱动内核里已经写好的,直接重新编译一下内核就行了,
现在的问题是怎么能让内核在启动的时候就加载这个驱动。
问题是这样的,我现在有两块开发板,一块6410,一块2410,
2410开发板用的是I2S芯片uda1341,内核启动的时候会自动加载
We do iis iomap from here.
mapped channel 10 to 2
mapped channel 9 to 1
Now we have successfully init dma resourse.
UDA1341 audio driver for utu2440 has been initialized

现在用的6410开发板,用的是AC97芯片wm8723,内核启动的时候也会自动查找并加载
AC97: Unable to activate!
AC97: Unable to activate!
AC97: Unable to read!
AC97: Unable to activate!
AC97: Unable to activate!
AC97: Unable to read!
AC97: Unable to activate!
AC97: Unable to activate!
AC97: Unable to read!
Failed to reset WM9713: AC97 link error
wm9713-codec wm9713-codec: asoc: failed to probe CODEC wm9713-codec: -5
asoc: failed to instantiate card MINI6410: -5
ALSA device list:
  No soundcards found.

现在的问题是我要在6410上用I2S芯片,怎么能在内核启动的时候自动加载I2S芯片的驱动,而不是AC97的驱动
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
7楼  发表于: 2011-07-29 11:41
1) 3 楼已经说过了, make menuconfig, 去掉wm9713 就不会加载ac97驱动了
2) 你要哪款I2S 的芯片?
级别: 新手上路
UID: 34711
精华: 0
发帖: 45
金钱: 235 两
威望: 47 点
综合积分: 90 分
注册时间: 2010-12-20
最后登录: 2011-10-27
8楼  发表于: 2011-07-29 14:50
我打算用uda1341,make menuconfig的时候我把wm9713去掉了,然后选择的是Build all ASoc CODEC drivers, uda1341的驱动应该包含在里面了,如果硬件上芯片已经连上,就能自动识别了嘛?
级别: 新手上路
UID: 34711
精华: 0
发帖: 45
金钱: 235 两
威望: 47 点
综合积分: 90 分
注册时间: 2010-12-20
最后登录: 2011-10-27
9楼  发表于: 2011-07-29 14:51
我明白了,多谢!
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go