ARM9开发板FL2440移植Linux-3.0内核————触摸屏的移植

因为内核linux-3.0已经有支持触摸屏的驱动,我们只需要将略做修改使其支持s3c-2440就行了

很简单;

第一步

修改源代码:
1、vim arch/arm/mach-s3c2440/mach-smdk2440.c
添加头文件 
 #include <plat/ts.h>
找个合适的位置添加以下结构体
/*  Touch Screen driver info add by liuchengdeng 2014.08.24 */
 static struct s3c2410_ts_mach_info smdk2440_ts_cfg __initdata = {
        .delay = 10000,
         .presc = 49,
         .oversampling_shift = 2,
         };

修改结构体
static struct platform_device *smdk2440_devices[] __initdata = {
     &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*/

 };
static void __init smdk2440_machine_init(void)
 {
     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();
}
2、vim  drivers/input/touchscreen/s3c2410_ts.c
添加代码1、
  input_report_key(ts.input, BTN_TOUCH, 1);
 
input_report_abs(ts.input, ABS_PRESSURE, 1);/*add by huangan*/
  input_sync(ts.input);
添加代码2、
  input_report_key(ts.input, BTN_TOUCH, 0);
 
input_report_abs(ts.input, ABS_PRESSURE, 0);/* add by huangan */
  input_sync(ts.input);
添加代码3、
ts.input = input_dev;
ts.input->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS) //将这句删除
 
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_X, 0, 0x3FF, 0, 0);
input_set_abs_params(ts.input, ABS_Y, 0, 0x3FF, 0, 0);
  input_set_abs_params(ts.input, ABS_PRESSURE, 0, 1, 0, 0); /*add by huangan */

第二步、配置内核:

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,大功告成!!!!!!!!!!!





你可能感兴趣的:(ARM9开发板FL2440移植Linux-3.0内核————触摸屏的移植)