觸摸屏的移植(s3c2410)
dev/mounse0
# cat /proc/devices
Character devices:
……
10 misc
13 input
29 fb
90 mtd
……
查看觸摸屏:
cat /proc/interrupts
……
53:
60:
70:
71:
79:
80:
具體的移植過程:
1:安放驅(qū)動文件
把s3c2410_ts.c放到drivers/input/touchscreen下。
把ts.h放到include/asm-arm/arch-s3c2410
2:修改drivers/input/touchscreen/Kconfig
添加下列信息
config TOUCHSCREEN_S3C2410
tristate "Samsung S3C2410 touchscreen input driver"
depends on ARCH_S3C2410 && INPUT && INPUT_TOUCHSCREEN
select SERIO
help
config TOUCHSCREEN_S3C2410_DEBUG
boolean "Samsung S3C2410 touchscreen debug messages"
depends on TOUCHSCREEN_S3C2410
help
3:修改drivers/input/touchscreen/Makefile
添加下列信息
obj-$(CONFIG_TOUCHSCREEN_S3C2410)
+= s3c2410_ts.o
4:把s3c2410_ts.c里的
#include
改成
#include
5:修改arch/arm/plat-s3c24xx/devs.c文件
添加頭文件
#include
添加
struct platform_device s3c_device_ts = {
.name= "s3c2410-ts",
.id= -1,};
EXPORT_SYMBOL(s3c_device_ts);
static struct s3c2410_ts_mach_info s3c2410ts_info;
void __init set_s3c2410ts_info(struct s3c2410_ts_mach_info *hard_s3c2410ts_info)
{memcpy(&s3c2410ts_info,hard_s3c2410ts_info,sizeof(struct s3c2410_ts_mach_info));
s3c_device_ts.dev.platform_data = &s3c2410ts_info;}
EXPORT_SYMBOL(set_s3c2410ts_info);
6:修改include/asm-arm/plat-s3c24xx/devs.h
在include/asm-arm/plat-s3c24xx/devs.h下添加:
extern struct platform_device s3c_device_ts;
添加頭文件
#include
添加
static struct s3c2410_ts_mach_info s3c2410_ts_cfg __initdata = {
.delay = 10000,
.presc = 49,
.oversampling_shift = 2,
};
在static struct platform_device *smdk2410_devices[] __initdata結(jié)構(gòu)體中添加
&s3c_device_ts,
在static void __init smdk2410_init(void)函數(shù)中添加
set_s3c2410ts_info(&s3c2410_ts_cfg);
這樣就OK了,然后記得配置內(nèi)核.make zImage
評論