"Linux触摸屏设备注册及初始化流程详解"
(s3c2410_ts_cfg, hard_s3c2410ts_info, sizeof(struct s3c2410_ts_mach_info));}s3c_device_ts.dev.platform_data = &s3c2410_ts_cfg;platform_device_register(&s3c_device_ts); }1.2 platform driver 注册static struct platform_driver s3c_ts_driver = { .probe = s3c_ts_probe, .remove = s3c_ts_remove, .driver = { .name = "s3c2410-ts", .owner = THIS_MODULE, },};module_platform_driver(s3c_ts_driver);触摸屏初始化完成后,会通过 platform_device_register 注册触摸屏设备,同时通过 module_platform_driver 注册 platform driver,该 driver 结构体的 probe 和 remove 分别指向了触摸屏设备的 probe 和 remove 函数。这样当内核检测到一个匹配的 platform device 注册到系统时,会去调用 s3c_ts_driver 中的 probe 函数,从而完成 platform device 与 platform driver 的绑定。2. 进行触摸屏校准 由于不同的触摸屏对应的输入面积以及灵敏度不同,所以需要进行触摸屏校准。用户通常在触摸屏上点击几个固定的位置以完成校准。在 Linux 内核中,可以通过 tslib 或者 evdev 来完成触摸屏的校准。tslib 是一个触摸屏库,可以支持触摸屏的校准、线性补偿以及手势识别等功能,而 evdev 是 Linux 内核的一个输入子系统,用于处理输入设备的事件。在 s3c_ts_probe 函数中,会进行触摸屏的校准。struct s3c_ts_info *info = kzalloc(sizeof(struct s3c_ts_info), GFP_KERNEL);info->idev = input_dev;input_set_abs_params(input_dev, ABS_X, 0, 0x3FF, 0, 0);input_set_abs_params(input_dev, ABS_Y, 0, 0x3FF, 0, 0);input_set_abs_params(input_dev, ABS_PRESSURE, 0, 0xFF, 0, 0);s3c_ts_setup(info);功能代码中使用 input_set_abs_params 来设置触摸屏输入设备的参数,包括 X、Y 坐标以及触摸屏的压强。通过 s3c_ts_setup 完成触摸屏的初始化工作。3.触摸屏输入事件的处理当触摸屏发生输入事件时,会通过 ts_event_handler 函数来处理。该函数定义如下:static void ts_event_handler(struct s3c_ts *s3c_ts, u16 data0, u16 data1, u16 data2, u16 data3){struct input_dev *input = s3c_ts->input;input_report_abs(input, ABS_X, data1);input_report_abs(input, ABS_Y, data2);input_report_abs(input, ABS_PRESSURE, data3);input_sync(input);}当触摸屏发生输入事件时,会将输入事件的数据传递到 ts_event_handler 函数中,然后通过 input_report_abs 和 input_sync 将触摸事件传递到输入子系统中,最终传递到用户空间。以上就是对 Linux 驱动中触摸屏的初始化、校准以及输入事件的处理。触摸屏在嵌入式系统中应用广泛,通过对触摸屏的驱动进行了解,可以更加深入地了解 Linux 驱动的开发。"
剩余15页未读,继续阅读
- 粉丝: 20
- 资源: 318
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx