This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

在DM368_IPNC下如何加载开发板上的设备TLV320AIC3101

Other Parts Discussed in Thread: TLV320AIC3101

现在使用的自己开发DM368的板子,板子上有一个外接codec是TLV320AIC3101,而内核默认设置的codec是dm368内置的CQ93VC,我现在要使用外接的TLV320AIC3101,但是不知道该怎么从外部加载这个设备?原先尝试过在内核配置时把sound card support选为M,然后生成了一大堆的模块,有:

  sound/soundcore.ko 
  sound/core/snd.ko
  sound/core/snd-timer.ko 
  sound/core/snd-page-alloc.ko 
  sound/core/snd-pcm.ko  
  sound/soc/snd-soc-core.ko 
  sound/soc/codecs/snd-soc-tlv320aic3x.ko
  sound/soc/davinci/snd-soc-davinci.ko
  sound/soc/davinci/snd-soc-davinci-i2s.ko
(PS:加载I2S时,会出现这样的错误:

[ 140.522999] Error: Driver 'davinci-mcbsp' is already registered, aborting...
insmod: error inserting 'snd-soc-davinci-i2s.ko': -1 Device or resource busy

)
  sound/soc/davinci/snd-soc-evm.ko 

但是依次加载完这些模块后,还是没有反应,在root权限下输入aplay -l时,提示aplay: device_list:240: no soundcards found...  求指导(PS:硬件没有问题)

另外,在网上看到有人在ARM11上也是加载外部的TLV320AIC3101,他也是把TLV320AIC3101编译成模块,但是他就只有两个模块,一个snd-soc-tlv320aic3x.ko和一个平台驱动模块snd-soc-aaa.ko,不像我这里生成了一大堆的模块,我到底是哪里弄错了,还是少了些其他操作?

  • 首先应该确保硬件是完好的,可以用CCS先测试一下硬件是不是通的,可以参考一下evm板,这个已经带了aic3101的测试程序:

    http://support.spectrumdigital.com/boards/evmdm368/revg/

  • 已经测过了,硬件是完好的

  • 看下内核中I2C地址是否和硬件符合,menuconfig选项是不是已经选上了,至少应该有设备节点

  • 在board-dm368-ipnc.c中添加的i2c board info

    {
    I2C_BOARD_INFO("tlv320aic3x", 0x18),
    },

    然后menuconfig选项如下:

    <M> Sound card support --->
    --- Sound card support
    <M> Advanced Linux Sound Architecture --->
    < > Open Sound System (DEPRECATED) --->
    
    <M> ALSA for SoC audio support --->
    --- ALSA for SoC audio support
    <M> SoC Audio for the TI DAVINCI chip
    <M> SoC Audio support for DaVinci DM644 ,DM355 or DM365 EVM
    启动板子后,存在/dev/snd这个文件,文件底下包括controlC0  pcmC0D0c   pcmC0D0p   timer,但依次把生成的模块加载以后,就是没反应,
    输入 cat /proc/asound/devices
     33:        : timer
    就只有这个 ,一直没搞清楚到底是什么问题