【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

早在诺基亚手机还比较流行的时候,那时候触摸屏用的还不多。但是随着触摸屏手机、即智能手机的流行,触摸屏基本成了手机的标配。所以,今天可以看看触摸屏驱动在linux上是如何进行的。

1、驱动目录

drivers/input

2、看看这个目录的Makefile如何设计

obj-$(CONFIG_INPUT)      += input-core.o
input-core-y := input.o input-compat.o input-mt.o ff-core.oobj-$(CONFIG_INPUT_TOUCHSCREEN) += touchscreen/

3、除了input-core.o这个文件外,只需要看touchscreen目录就可以了

config TOUCHSCREEN_S3C2410tristate "Samsung S3C2410/generic touchscreen input driver"depends on ARCH_S3C24XX || SAMSUNG_DEV_TSdepends on S3C_ADChelpSay Y here if you have the s3c2410 touchscreen.If unsure, say N.To compile this driver as a module, choose M here: themodule will be called s3c2410_ts.

4、看懂了Kconfig之后,再阅读Makefile,注意S3C_ADC宏可以参考arch/arm/plat-samsung/adc.c

obj-$(CONFIG_TOUCHSCREEN_S3C2410)    += s3c2410_ts.o

5、继续阅读s3c2410_ts.c文件

static const struct platform_device_id s3cts_driver_ids[] = {{ "s3c2410-ts", 0 },{ "s3c2440-ts", 0 },{ "s3c64xx-ts", FEAT_PEN_IRQ },{ }
};
MODULE_DEVICE_TABLE(platform, s3cts_driver_ids);static struct platform_driver s3c_ts_driver = {.driver         = {.name   = "samsung-ts",
#ifdef CONFIG_PM.pm = &s3c_ts_pmops,
#endif},.id_table   = s3cts_driver_ids,.probe      = s3c2410ts_probe,.remove      = s3c2410ts_remove,
};
module_platform_driver(s3c_ts_driver);

6、根据probe函数,看看有什么需要注意的内容

 ts.client = s3c_adc_register(pdev, s3c24xx_ts_select,s3c24xx_ts_conversion, 1);if (IS_ERR(ts.client)) {dev_err(dev, "failed to register adc client\n");ret = PTR_ERR(ts.client);goto err_iomap;}

7、接着,查看是否有中断函数被注册

 ret = request_irq(ts.irq_tc, stylus_irq, 0,"s3c2410_ts_pen", ts.input);

8、最后

很明显,触摸屏驱动本质上还是由TOUCHSCREEN_S3C2410和S3C_ADC两个macro一起完成的。

linux驱动编写(触摸屏驱动)相关推荐

  1. linux下GT911触摸屏驱动优化记录

    linux下GT911触摸屏驱动优化记录 背景 由于最近要做linux内核启动速度优化,所以就对着驱动一点一点优化,加上QT应用程序的初始化,总共的启动时间要做到4S以内.目前先调试GT911驱动程序 ...

  2. Linux 驱动 | hy46xx触摸屏驱动

    hy46xx Touch IC hy46xx是HYCON科技一款触摸IC. 上电时序: 通信接口: 使用IIC通信 中断方式: 当INT引脚产生下降沿的时候,触摸数据就绪,这样就可以在中断中读取 如果 ...

  3. linux内核关闭触摸屏校准,linux内核usb触摸屏驱动bug调试- selected device is not a touchscreen I understand...

    近期给客户调试一块数控板,今天客户带过来一个屏,并且有一个usb的触摸屏芯片接在屏上.屏很快就弄好正常显示. 触摸屏在内核下找到usb 触摸屏驱动,内核启动后这个usb转的触摸屏也正常找到,注册为ev ...

  4. linux rs232触摸屏驱动程序,Linux下的触摸屏驱动

    一.触摸屏理论概述 对于触摸屏驱动,我们主要需要掌握触摸屏驱动代码和应用层测试代码.下面讲的是基于Mini2440的触摸屏驱动,现在的驱动我们都将设备和驱动分离,挂在平台设备总线上,让设备和驱动去匹配 ...

  5. Linux下的触摸屏驱动

    版权所有,转载请说明转自 http://my.csdn.net/weiqing1981127 一.触摸屏理论概述 对于触摸屏驱动,我们主要需要掌握触摸屏驱动代码和应用层测试代码.下面讲的是基于Mini ...

  6. FL2440移植LINUX-3.4.2 -- 按键驱动和触摸屏驱动移植

    (一)先移植按键输入子系统驱动: 拿过去编译,改错,然后insmod: (二)触摸屏驱动拿过去编译,改错,然后insmod: 触摸屏驱动的使用: 编译: tar xzf tslib-1.4.tar.g ...

  7. Linux/Android——usb触摸屏驱动 - usbtouchscreen (一)

    版权声明:免责声明: 本人在此发文(包括但不限于汉字.拼音.拉丁字母)均为随意敲击键盘所出,用于检验本人电脑键盘录入.屏幕显示的机械.光电性能,并不代表本人局部或全部同意.支持或者反对观点.如需要详查 ...

  8. Linux下IIC驱动编写(驱动adxl345传感器)

    基于IMX6ULL Mini开发板,硬件连接:SCL->43, SDA->42,CS->3.3V INT1->7 一.搭建基础框架 1.设置私有数据client,linux/i ...

  9. Linux内核---30.触摸屏驱动分析

    查看input系统 root@OK6410:~# cat /proc/bus/input/devices I: Bus=0013 Vendor=dead Product=beef Version=01 ...

  10. linux触摸屏代码解析,Linux触摸屏驱动解析

    Linux下开发触摸屏驱动,最好的范例莫过于mc68328digi.c的实现.在没有看到原文之前,我把其中用到的结构解析一下. 1,struct ts_pen_info 该结构是触摸屏的核心数据结构. ...

最新文章

  1. 实操教程:android camera nanodet 实时物体检测的高效实现总结
  2. 简单好听的id_一位妈妈给孩子的10大家规,简单实用,值得所有父母借鉴!
  3. ApkTool反编译出错brut.common.brutexception及java.io.filenotfoundexception 之一
  4. yii 前后台分离及登陆验证
  5. yii mysql_Yii2框架操作数据库的方法分析【以mysql为例】
  6. MySQL-ProxySQL中间件(一)| ProxySQL基本概念
  7. mysql++pc客户端_Mysql超详细安装配置+客户端连接
  8. 鸿蒙系统和汽车,华为鸿蒙系统和新日电动车,到底是什么关系?
  9. 工程监测管理平台、工程数据看板、工程总览、动态模型、数据分析、数据跟踪、建筑工地、数据报表、警点管控、现场记录、观测记录、测点管理、模型管理、文档管理、墙体下沉、成员管理、axure原型、产品原型
  10. android实现Materia Design风格APP(四):ViewPager同时显示3个item及设置切换动画
  11. Consumer clientId=consumer-1, groupId=console-consumer-950] Connection to node -1 could not be
  12. vs2010 vs2012 插件小番茄 visual assist x破解版下载
  13. 【转】word 高效经典教程
  14. poj1386 Paly onWords
  15. YOLOV3论文详解
  16. 机械工程基础笔记整理
  17. APICloud 多端开发 | 拼团商城项目开发难点
  18. mybatis json转对象Object
  19. 手机照片免费转JPG格式怎么做?教你两个法子快速转换
  20. 求1~n中素数个数的几种方法C/C++

热门文章

  1. c/c++标准库中的文件操作总结
  2. NodeJs+Qunit的使用方式
  3. windows中开启snmp
  4. 白话编程辅助工具perl2exe(Reship)
  5. 吴裕雄--天生自然 高等数学学习:空间直角坐标系
  6. 【算法笔记】B1058 选择题
  7. python第一个项目:爬取一个网站的所有图片
  8. 问:为什么python中有了全局解释器锁GIL,还要有互斥锁?
  9. https://gogs.io/
  10. Java中对List集合排序的两种方法