您的位置:首页 > 运维架构 > Linux

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

2015-10-26 22:22 591 查看
因为内核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,大功告成!!!!!!!!!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: