欢迎来到天天文库
浏览记录
ID:27870207
大小:32.50 KB
页数:17页
时间:2018-12-06
《基于DragonBoard 410c开发板的触摸屏驱动编写.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于DragonBoard410c开发板的触摸屏驱动编写 让大家初步了解对高通MSM8916平台的输入子系统的实现,给大家提供DragonBoard410c平台开发输入系统设备的思路。(如:按键设备、触摸屏、轨迹球等) 在高通MSM8916平台中,具有触摸屏、轨迹球和简单按键功能,这些功能是由Android系统内中的驱动程序实现的,并且需要用户空间的内容来协助实现。一、触摸屏驱动编写 高通MSM8916平台的触摸屏驱动程序的实现文件是drivers/input/touchscreen/synapTIcs_i2c_rmi4.c,此
2、文件的核心是函数synapTIcs_ts_probe(),在该函数中需要进行触摸屏工作模式的初始化,对作为输出设备的触摸屏驱动在Linux平台下的设备名注册,同事初始化触摸时间触发时引起的中断操作。此函数的实现代码如下: staTIcintsynapTIcs_rmi4_probe( structi2c_client*client,conststructi2c_device_id*dev_id) { intretval=0;unsignedcharii;unsignedcharattr_count;structsynaptics
3、_rmi4_f1a_handle*f1a;structsynaptics_rmi4_fn*fhandler;structsynaptics_rmi4_fn*next_fhandler;structsynaptics_rmi4_data*rmi4_data;structsynaptics_rmi4_device_info*rmi;structsynaptics_rmi4_platform_data*platform_data=client->dev.platform_data;structdentry*temp;if(!i2c_chec
4、k_functionality(client->adapter,I2C_FUNC_SMBUS_BYTE_DATA)){dev_err(&client->dev,“%s:SMBusbytedatanotsupported”,__func__);return-EIO;}if(client->dev.of_node){platform_data=devm_kzalloc(&client->dev,sizeof(*platform_data),GFP_KERNEL);if(!platform_data){dev_err(&client->
5、dev,“Failedtoallocatememory”);return-ENOMEM;}retval=synaptics_rmi4_parse_dt(&client->dev,platform_data);if(retval)returnretval;}else{platform_data=client->dev.platform_data;}if(!platform_data){dev_err(&client->dev,“%s:Noplatformdatafound”,__func__);return-EINVAL;}rm
6、i4_data=kzalloc(sizeof(*rmi4_data)*2,GFP_KERNEL);if(!rmi4_data){dev_err(&client->dev,“%s:Failedtoallocmemforrmi4_data”,__func__);return-ENOMEM;}rmi=&(rmi4_data->rmi4_mod_info);rmi4_data->input_dev=input_allocate_device();//创建设备if(rmi4_data->input_dev==NULL){dev_err(&c
7、lient->dev,“%s:Failedtoallocateinputdevice”,__func__);retval=-ENOMEM;gotoerr_input_device;rmi4_data->i2c_client=client;rmi4_data->current_page=MASK_8BIT;rmi4_data->board=platform_data;rmi4_data->touch_stopped=false;rmi4_data->sensor_sleep=false;rmi4_data->irq_enabled=
8、false;rmi4_data->fw_updating=false;rmi4_data->suspended=false;rmi4_data->i2c_read=synaptics_rmi4_i2c_read;rmi4
此文档下载收益归作者所有