大家好,我现在想在移植mini2440的触摸屏驱动,可是移植好后下到开发板找不到设备文件,我的文件系统支持mdev机制,其他的都能识别到如adc和fb0等,这是什么原因啊?????
具体的移植步骤如下:(adc驱动以移植成功)
1.复制友善光盘里的的s3c2440_ts.c到我自己的内核的drivers/input/touchscreen/s3c2440_ts.c
并在touchscreen下的Makefile下添加obj-$(CONFIG_TOUCHSCREEN_S3C2410) += s3c2410_ts.o
编辑Kconfig,添加
config TOUCHSCREEN_S3C2410
tristate "Samsung S3C2410 touchscreen input driver"
depends on INPUT && MINI2440_ADC
help
Say Y here if you have the s3c2410 touchscreen.
If unsure, say N.
To compile this driver as a module, choose M here: the
module will be called s3c2410_ts.
2.修改arch/arm/mach-s3c2440/mach-smdk2440.c如下:
struct s3c2410_ts_mach_info s3c2440_ts_cfg __initdata = {
.delay =20000,
.presc = 55,
.oversampling_shift = 2,
}
在函数smdk2440_devices中添加&s3c_device_ts
函数smdk2440_machine_init添加s3c24xx_fb_set_platdata(&smdk2440_ts_cfg);
3.修改arch/arm/plat-s3c24xx/devs.c如下
添加以下函数:
static struct s3c2410_ts_mach_info s3c2410_ts_info;
void __init s3c24xx_init_touchscreen(struct s3c2410_ts_mach_info *hard_s3c2410_ts_info)
{
memcpy(&s3c2410_ts_info,hard_s3c2410_ts_info,sizeof(struct s3c2410_ts_mach_info));
}
struct platform_device s3c_device_ts = {
.name = "s3c2410-ts",
.id = -1,
.num_resources = ARRAY_SIZE(s3c_adc_resource),
.resource = s3c_adc_resource,
.dev = {
.platform_data = &s3c2410_ts_info,
}
};
EXPORT_SYMBOL(s3c_device_ts);
4.创建一个ts.h文件。里面是对s3c2410_ts_mach_info结构体的定义
5.然后make menuconfig,增加对触摸屏的支持(adc以添加过)
把编译好的uImage下到开发板了,在/dev下面找不到过于触摸屏的设备节点,不知道哪里出错了,有哪位大哥做过触摸屏移植啊,帮忙指点一下,谢谢
QtE已经移植好了,可以在开发板上运行,就是触摸屏不能用,找不到设备节点~~~