zoukankan      html  css  js  c++  java
  • 三星平台声卡移植添加新的声卡驱动程序

    核心提示:家提供的wm8976声卡驱动程序,添加到内核硬件环境 j​z2440开发板,搭载 s3c2440处理器 使用的声卡芯片 wm8976软件环境内核版本 linux 3.4.2内核 交叉编译工具 arm-linux-gcc 4.3.2添加新的声卡驱动方法方法一...
    目的:在linux 3.4.2内核下移植厂家提供的wm8976声卡驱动程序,添加到内核
    
    硬件环境  j​z2440开发板,搭载 s3c2440处理器  使用的声卡芯片  wm8976
    
    软件环境内核版本 linux 3.4.2内核  交叉编译工具 arm-linux-gcc 4.3.2
    
    添加新的声卡驱动方法 
    
    方法一 
    
    ①将移植好的声卡驱动wm8976.c和wm8976.h放入内核 sound/soc/codecs目录下​,并修改对应目录下的Makefile文件,注销掉内核自带的声卡驱动文件uda134x.o,改名为新的文件名wm8976.o
    
    ​②修改内核文件  s3c24xx_uda134x.c  将其文件中的 snd_soc_dai_link结构体中的codec_name 改为和 wm8976-codec   codec_dai_name  改为  wm8976-iis
    
    方法​二 仿照内核添加一个配置项即可
    
    ① 将移植好的声卡驱动wm8976.c和wm8976.h放入内核 sound/soc/codecs目录下​
    
    ② 修改 sound/soc/codecs/Makefile
    
    1)搜索 snd-soc-uda134x-objs :=uda134x.o
    
    在其下方添加一行  snd-soc-wm8976-objs :=wm8976.o​
    
    ​2)同样搜索  obj-$(CONFIG_SND_SOC_UDA134X)+=snd-soc-uda134x.o  
    
    在其下方添加新的一行  obj-$(CONFIG_SND_SOC_WM8976)+=snd-soc-wm8976.o ​
    
    ③修改​同目录(sound/soc/codecs)下的Kconfig文件(主要是在makemenuconfig时添加一项)
    
    1)打开后 搜索  configSND_SOC_UDA134X​
    
    在其下方添加新的两行 
    
    configSND_SOC_WM8976
    
    tristate     
    
    2)搜索 selectSND_SOC_UDA134X 
    
     ​在其下方添加新的一行 selectSND_SOC_WM8976
    
    ​
    
    ​③修改sound/soc/samsung目录下的文件
    
    1)复制s3c24xx_uda134x.c,命名为s3c2440_wm8976.c
    
    ​修改s3c24xx_uda134x_hw_params ​函数 
    
    #if 0
    
    ret = snd_soc_dai_set_sysclk(codec_dai, 0, clk,
    
    SND_SOC_CLOCK_OUT);
    
    if (ret < 0)
    
    return ret;
    
    #endif
    
    修改 snd_soc_s3c24xx_uda134x​
    
    .name = S3C2440_WM8976 ,
    
    替换S3C24XX_UDA134X  为S3C2440_WM8976​
    
    ​2)修改对应目录下的Makefile
    
    搜索snd-soc-s3c24xx-uda134x-objs := s3c24xx_uda134x.o  ​
    
    在其下方添加一行 snd-soc-s3c24xx-wm8976-objs :=s3c2440_wm8976.o ​
    
    搜索 obj-$(CONFIG_SND_SOC_SAMSUNG_S3C24XX_UDA134X)+= snd-soc-s3c24xx-uda134x.o      ​
    
    在其下方添加一行
    
    ​obj-$(CONFIG_SND_SOC_SAMSUNG_S3C24XX_WM8976) +=snd-soc-s3c24xx-wm8976.o
    
    3​)修改Kconfig文件
    
    搜索configSND_SOC_SAMSUNG_S3C24XX_UDA134X
    
    tristate SoC I2S Audio support UDA134X wired to aS3C24XX
    
    depends on SND_SOC_SAMSUNG &&ARCH_S3C24XX
    
    select SND_S3C24XX_I2S
    
    select SND_SOC_L3
    
    select SND_SOC_UDA134X
    
    添加wm8976相关的
    
    ​configSND_SOC_SAMSUNG_S3C24XX_WM8976                        
    
    tristate SoC I2S Audio support WM8976 wired to aS3C24XX    
    
    depends on SND_SOC_SAMSUNG && ARCH_S3C24XX                  
    
    select SND_S3C24XX_I2S                                   
    
    select SND_SOC_L3                                        
    
    select SND_SOC_WM8976  
    
    ④​  重新配置内核 make menuconfig 
    
    Device Drivers  ---><*>Sound card support  ---><*>   Advanced LinuxSound Architecture  ---><*>   ALSA for SoC audiosupport  ---><*>  ASoC support for Samsung  
    
                        ​<*>   SoC I2S Audiosupport WM8976 wired to a S3C24XX 
    
    编译内核  makeuImage​
      
  • 相关阅读:
    SpringBoot的缓存
    jsp标签指定id区域内容显示和隐藏
    Linux awk统计日志中出现过的IP(或出现次数最多的N个IP)
    回文数
    算法z形字符串
    最长回文字符串
    redis与Mysql数据同步
    算法(1)
    滑动窗口算法
    HTTP长连接和短连接
  • 原文地址:https://www.cnblogs.com/muhuacat/p/5807303.html
Copyright © 2011-2022 走看看