Linux内核已经完美的支持 UDA1341 音频芯片的驱动,我们只要在arch/arm/mach-s3c2440/mach-smdk2440.c文件中注册 UDA1341 平台设备的控制端口就可以了。
1、修改arch/arm/mach-s3c2440/mach-smdk2440.c,在Platform_device结构体中,加入:
#if defined(CONFIG_SND_S3C24XX_SOC)
&s3c24xx_uda134x,
#endif
2、修改arch/arm/plat-s3c24xx/devs.c,在DM9000那段代码下面加入:
//硬件接法:L3MODE -> GPB2 L3DATA->GPB3 L3CLOCK->GPB4
#if defined(CONFIG_SND_S3C24XX_SOC)
#include <mach/regs-gpio.h>
#include <sound/s3c24xx_uda134x.h>
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,
};
struct platform_device s3c24xx_uda134x = {
.name = "s3c24xx_uda134x",
.dev = {
.platform_data = &s3c24xx_uda134x_data,
}
};
EXPORT_SYMBOL(s3c24xx_uda134x);
#endif
3、在arch/arm/plat-s3c/include/plat/devs.h中加入:
#if defined(CONFIG_SND_S3C24XX_SOC)
extern struct platform_device s3c24xx_uda134x;
#endif
4、配置内核,支持声卡:
Device Drivers:
* Sound card support->
[*] Preclaim OSS device numbers
<*> Advanced Linux Sound Architecture->
<*> OSS Mixer API
<*> OSS PCM (digital audio) API
[*] OSS PCM (digital audio) API - Include plugin system
[*] Verbose procfs contents
<*> ALSA for SoC audio support->
<*> SoC Audio for the Samsung S3CXXXX chips
<*> SoC I2S Audio support UDA134X wired to a S3C24XX