因为内核linux-3.0已经有支持触摸屏的驱动,我们只需要将略做修改使其支持s3c-2440就行了
很简单;
第一步
static struct s3c2410_ts_mach_info smdk2440_ts_cfg __initdata = {
.delay = 10000,
.presc = 49,
.oversampling_shift = 2,
};
&s3c_device_ohci,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_i2c0,
&s3c_device_iis,
&s3c_device_dm9000,
&s3c_device_adc, /* modify by huangan */
&s3c_device_ts, /* add end*/
};
{
s3c24xx_fb_set_platdata(&smdk2440_fb_info);
s3c24xx_ts_set_platdata(&smdk2440_ts_cfg);/* add toucg screen info by huangan*/
s3c_i2c0_set_platdata(NULL);
platform_add_devices(smdk2440_devices, ARRAY_SIZE(smdk2440_devices));
smdk_machine_init();
}
input_report_abs(ts.input, ABS_PRESSURE, 1);/*add by huangan*/
input_sync(ts.input);
input_report_abs(ts.input, ABS_PRESSURE, 0);/* add by huangan */
input_sync(ts.input);
ts.input->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS) | BIT(EV_SYN); //添加这句
ts.input->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
input_set_abs_params(ts.input, ABS_Y, 0, 0x3FF, 0, 0);
第二步、配置内核:
make menuconfig
Device Drivers --->
Input device support --->
[*] Touchscreens --->
<*> Samsung S3C2410/generic touchscreen input driver
第三步、重新编译内核,并烧到开发板,输入如下命令
~>cd dev/
~>ls
audio ptyq3 tty10 ttyq5
autofs ptyq4 tty11 ttyq6
console ptyq5 tty12 ttyq7
controlC0 ptyq6 tty13 ttyq8
cpu_dma_latency ptyq7 tty14 ttyq9
discover ptyq8 tty15 ttyqa
dsp ptyq9 tty16 ttyqb
err ptyqa tty17 ttyqc
event0 ptyqb tty18 ttyqd(多出了event0 设备)
fb0 ptyqc tty19 ttyqe
flush ptyqd tty2 ttyqf
说明已经移植成功。。
OK,大功告成!!!!!!!!!!!