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

时间:2021-06-04 14:47:15

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”了。
 退出保存以上各项配置。