添加VID/PID到标准hid设备-OK

http://www.xuebuyuan.com/934880.html

修改文件:

     1、在hid-ids.h中加入vid pid

     
     2、在hid-multitouch..c->mt_devices[] 中加入
          {

               .driver_data=MT_CLS_DEFAULT,
                 HID_USB_DEVICE(VID,PID)

          }

     
     3、在hid-core.c->hid_have_special_driver[]中加入HID_USB_DEVICE(VID,PID)
     
------------------------------------------------------------------------------------------------------------------------------------------------------
4:添加内核配置选项:
     
5: 
     
7:
   
----------------------------------------------------------------------------------------------------------------------------------------------------------
   根据这个网站添加上层IDC文件:
   
9:
# Copyright (C) 2012 Beijing IRTOUCH SYSTEMS Co.,Ltd
#
#
# Input Device Configuration File for the IRTOUCH touch screen.
#

# Basic Parameters
touch.deviceType = touchscreen
touch.orientationAware = 1

# 0 外部设备,1 内部设备
device.internal = 1


# Touch Size
#touch.touchSize.calibration = pressure

#touch.toolSize.calibration = linear
#touch.toolSize.linearScale = 10
#touch.toolSize.linearBias = 160
#touch.toolSize.isSummed = 1

# Size
#touch.size.calibration = diameter
#touch.size.scale = 10
#touch.size.bias = 0
#touch.size.isSummed = 0
#scale 规模,面,比例;
#bias 偏压,偏差
#summed 总结

# Pressure压力-/amplitude振幅
#touch.pressure.calibration = amplitude
#touch.pressure.scale = 0.005


# Orientation方向-/校准
touch.orientetion.calibration = none


---------------------------------------------------------------------------------------------------------------------------------------------------
      上面那个idc文件不能用,用下面这个idc文件,Android 触摸屏idc文件一般都是通用的,我的用这个下面这个idc文件就可以了,知识触摸屏没有鼠标箭头,但是鼠标点哪里就是去哪里
 
# Copyright (C) 2010 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#
# Emulator keyboard configuration file #1.
#


# Basic Parameters
touch.deviceType = touchScreen
touch.orientationAware = 1
touch.size.calibration=diameter
touch.size.scale=10
touch.size.bias=0
touch.size.isSummed=0
touch.size.pressure.calibration=amplitude
touch.pressure.scale=0.005
touch.orientation.calibration=none

---------------------------------------------------------------------------------------------------------------------------------------------------
10: adb shell 
    su
    mount
    
     mount -w -o remount  /dev/block/platform/omap/omap_hsmmc.0/by-name/system     /system
 
    
 
    
     chmod 777 /system/usr/idc   =>修改idc文件可写权限;
    
     adb push /home/tonsincs/Vendor_0416_Product_5030_Version_0110.idc /system/usr/idc/
    
 -----------------------------------------------------------------------------------------------------------------------------------------------------------
11:还有一种把 IDC 文件放到/system/usr/idc/ 目录下的方法:
     1)把你的 IDC 文件拷贝到android源码:frameworks/base/data/keyboards/ 目录下;
     2)修改common.mk文件:
      
     3)croot 到android源码根目录: make -j8 完成后,find 命令在out目录查找下……结果如下则OK;
     
 -----------------------------------------------------------------------------------------------------------------------------------------------------------
总结:
       最近一直移植Android(4.1)下面的触摸屏驱动,也接触到了几种触摸屏,总的来说,要么把触摸屏当标准的HID设备来用,这个移植就简单,把触摸屏的VID/PID加到hid-ids.h hid-core.c hid-multitouch.c 文件里面,而且还要上层/system/usr/idc/Vendor_xxx_Product_xxx.idc文件配合,触摸屏才能使用,否则你的触摸屏用着跟笔记本的触摸板似得!
       个人理解,修改drivers/input/touchscreen/usttouchscreen.c文件中添加你的触摸屏驱动可以,不过这个比较麻烦,你要知道怎么写驱动,一些函数怎么实现, 算法怎么实现;比较麻烦;
       也接触到了i2c总线的触摸屏驱动,这个又比较麻烦一点,要根据你的arch/arm/mach-xxxx/board-xxx.c文件中注册你的触摸屏驱动i2c总线信息;再添加你的驱动源码;
       总得来说,写驱动的话比较麻烦,你必须有电路原理图、芯片数据手册,而且要看的明明白白,怎么去是实现那些算法,而且要对linux 驱动很了解,你的驱动挂载哪里,i2c总线、usb总线,又要很多协议;很多知识;usb2.0协议,英文287页;很麻烦!慢慢学习了!以上为个人理解!也是个人工作笔记!以备自己忘记了查阅!也供刚入门的朋友们参考!

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值