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