显示触摸屏驱动

1)配置sysconfig.fex文件

A40I驱动程序开发-LCD-CTP

A40I驱动程序开发-LCD-CTP

 

A40I驱动程序开发-LCD-CTP

A40I驱动程序开发-LCD-CTP

2env_cfg文件配置(lichee/tools/pack/chips/sun8iw11p1/configs/default$

设置loglevel=1

A40I 原厂android7.1程序中,在linux3.10中没有FT5316的驱动程序,需要将ft5x_ts.c程序移植到此系统中。

3)驱动文件修改

驱动文件修改1:修改KconfigMakefile

lichee/linux-3.10/drivers/input/touchscreen/Kconfig

A40I驱动程序开发-LCD-CTP

lichee/linux-3.10/drivers/input/touchscreen/Makefile

A40I驱动程序开发-LCD-CTP

驱动文件修改2:修改原android6.0上的ft5x.c文件

A40I驱动程序开发-LCD-CTP

android目录文件修改

修改文件1android/device/softwinner/a40-common/init.sun8iw11p1.rc

A40I驱动程序开发-LCD-CTP

修改文件2:在/android/device/softwinner/a40-p1/configs目录下面,执行命令

A40I驱动程序开发-LCD-CTP

修改文件3android/device/softwinner/a40-p1/a40_p1.mk

A40I驱动程序开发-LCD-CTP

说明:在调试中,发现滑鼠现象(手指在触屏上滑动的时候,鼠标箭头跟着滑动),消除滑鼠现象,需要添加idc文件,idc文件的名称必须与驱动名称一致,否则无效。

 

10寸触摸屏在7寸触摸屏的基础上,做了如下修改:

1 屏幕切换触摸屏配置修改,将注释位置的配置更换

A40I驱动程序开发-LCD-CTP

2 屏幕切换LCD配置修改,将注释位置的配置更换

A40I驱动程序开发-LCD-CTP

驱动源码程序修改ft5x.c文件

(1) TOUCH_KEY_FOR_EVB13 部分代码替换为下面的代码

#ifdef TOUCH_KEY_FOR_EVB13

         if((1==event->touch_point)&&(event->y1==900)){

                   key_tp = 1;

                   if(event->x1 == 120){

                            key_val = KEY_BRIGHTNESSDOWN;

                            input_report_key(data->input_dev, key_val, 1);

                            input_sync(data->input_dev); 

                            //printk("===KEY 1====\n");    

                   }else if(event->x1 == 360){

                            key_val = KEY_BRIGHTNESSUP;

                            input_report_key(data->input_dev, key_val, 1);

                            input_sync(data->input_dev);    

                            //printk("===KEY 2 ====\n");

                   }else if(event->x1 == 600){                         

                            key_val = KEY_HOMEPAGE;

                            input_report_key(data->input_dev, key_val, 1);

                            input_sync(data->input_dev);    

                            //printk("===KEY 3====\n");

                   }else if (event->x1 == 960)        {

                            key_val = KEY_MENU;

                            input_report_key(data->input_dev, key_val, 1);

                            input_sync(data->input_dev);    

                            //printk("===KEY 4====\n");  

                   }else if (event->x1 == 1160)     {

                            key_val = KEY_BACK;

                            input_report_key(data->input_dev, key_val, 1);

                            input_sync(data->input_dev);    

                            //printk("===KEY 5====\n");  

                   }

         }else{

                   key_tp = 0;

         }

(2)在ft5x_ts_probe函数中增加如下程序:

         set_bit(KEY_BRIGHTNESSDOWN,input_dev->keybit);         

         set_bit(KEY_BRIGHTNESSUP,input_dev->keybit); 

         set_bit(KEY_HOMEPAGE,input_dev->keybit);       

         set_bit(KEY_MENU,input_dev->keybit);

         set_bit(KEY_BACK,input_dev->keybit);  

         set_bit(EV_ABS, input_dev->evbit);

         set_bit(EV_KEY, input_dev->evbit);

测试过程:LCD屏可显示,触屏可以用;

相关文章: