日期:2014-05-16  浏览次数:20674 次

linux-2.6.32在mini2440开发板上移植(13)之移植UDA1341 音频驱动

1 在初始化文件中加入UDA1341 设备结构
       Linux-2.6.32.2 已经完美的支持UDA1341 音频芯片的驱动, 我们只要在arch/arm/mach-s3c2440/mach-mini2440.c 文件中注册UDA1341 平台设备的控制端口就可以了,打开mach-mini2440.c,添加如下内容:

;在文件首部添加头文件
#include <sound/s3c24xx_uda134x.h>
;在LCD 平台设备后面添加UDA1341 设备结构
static struct s3c24xx_uda134x_platform_data s3c24xx_uda134x_data = {
     .l3_clk = S3C2410_GPB(4),
     .l3_data = S3C2410_GPB(3),
     .l3_mode = S3C2410_GPB(2),
     .model = UDA134X_UDA1341,
  };
static struct platform_device s3c24xx_uda134x = {
      .name = "s3c24xx_uda134x",
      .dev = {
      .platform_data = &s3c24xx_uda134x_data,
        }
};
;注册UDA1341 设备平台到内核中
static struct platform_device *mini2440_devices[] __initdata = {
      &s3c_device_usb,
      &s3c_device_rtc,
      &s3c_device_lcd,
      &s3c_device_wdt,
      &s3c_device_i2c0,
      &s3c_device_iis,
     &mini2440_device_eth,
     &s3c24xx_uda134x,
     &s3c_device_nand,
 };
这样,我们基本就添加好了UDA1341 音频设备的驱动,接下来我们在内核中配置该
驱动。

2 在内核中配置UDA1341 设备驱动
在内核源代码目录输入:make menuconfig 开始配置内核,依次选择如下子菜单,找到音频驱动配置菜单:
Device Drivers --->
      <*> Sound card support --->
如图,按空格选中“[*] Preclaim OSS device numbers ”,再选中“<*> Advanced Linux Sound Architecture --->”,并回车进入该子菜单.
出现音频驱动体系结构哦诶只菜单,在这里,我们选择OSS 接口相关的配置选项,需
要注意的是,这里的OSS 接口其实是基于ALSA 接口创建的,因为新的内核中现在都已经改用ALSA 设计,这里是为了和以前的软件兼容才这样做的,选择以下几个

<*>OSS Mix API

<*>OSS PCM API

<*>verbose procfs cotnets

再选择“<*> ALSA for SoC audio support --->”子菜单并回车进入,我们的开发板使用的是UDA1341 音频芯片,在这里当然要选择“-*- SoC I2S Audio support UDA134X wired to a S3C24XX”了。
退出保存以上各项配置。