早在诺基亚手机还比较流行的时候,那时候触摸屏用的还不多。但是随着触摸屏手机、即智能手机的流行,触摸屏基本成了手机的标配。所以,今天可以看看触摸屏驱动在linux上是如何进行的。...查看是否有中断函数被注册 ret = request_irq(ts.irq_tc, stylus_irq, 0, "s3c2410_ts_pen", ts.input); 8、最后 很明显,触摸屏驱动本质上还是由
资料下载 coding无法使用浏览器打开,必须用git工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git...视频观看 百问网驱动大全 Input子系统视频介绍 参考资料: Linux 5.x内核文档 Documentation\input\input-programming.rst Documentation...\input\event-codes.rst Linux 4.x内核文档 Documentation\input\input-programming.txt Documentation\input...输入设备的种类 输入设备种类很多,有GPIO按键、鼠标、电阻触摸屏、电容触摸屏、USB键盘、遥控手柄等等。...3.6 I2C接口的触摸屏驱动分析与实践 3.5 在QEMU上实现最简单的触摸屏驱动 3.6 I2C接口的触摸屏驱动分析与实践 3.7 UInput: 用户态模拟输入设备
触摸屏的驱动在内核中一般也有了,各厂家用的触摸屏IC可能不同。需要配置内核把它加进去,同时修改设备树:指定触摸IC的信息(比如I2C地址),指定中断引脚。...4.移植触摸屏驱动 4.1 确定触摸屏型号 还是那句话,如果有触摸屏数据手册,看手册就好了。 如果没有手册,怎么办?...触摸屏的主控芯片一般都是I2C接口的,那么我们可以把屏接到板子上,用i2cdetect检测出I2C设备的地址,根据地址就可以知道它的型号。...上图中, “–”表示没有这个地址对应的I2C设备; “UU”表示这个地址的I2C设备已经有驱动在使用占用它了,那这个I2C设备肯定是存在的; 其他数值表示该地址对应的I2C设备是存在的,并且还没有驱动程序跟它匹配...地址为0x38的I2C芯片有不少,比如HDMI PHY,还有ft5306、ft5x06。你在百度搜一下“ft5306”,它确实就是触摸屏芯片。所以这款触摸屏的主控芯片就是ft5x06。
1.2、使用i2cdetect工具确定设备地址 由于我的触摸屏是连接在I2C5上,硬件原理图如下所示: 但是我还没有实现它的驱动,所以可以通过i2cdetect工具来确定设备的I2C地址是多少,ARM...: 上图中: “--”表示没有这个地址对应的 I2C设备; “UU”表示这个地址的 I2C 设备已经有驱动在使用占用它了,那这个I2C 设备肯定是存在的; 其他数值表示该地址对应的 I2C 设备是存在的...如上图所示,这个5d就表示当前触摸屏的I2C地址,为什么是5d呢?你把触摸屏拔掉,再用这个命令查看是不是消失了就可以验证这个问题了。...2、GT911驱动移植 2.1、配置Linux内核支持gt9xx GT911在Linux内核中已经支持了,位于以下路径,如果没有的话就需要跟触摸屏厂商要驱动代码,如果要不到那么就拿着Datasheet自己干吧...max-y 触摸Y方向的分辨率,由于我的触摸屏是1024*600,项目上需要竖屏触摸,所以X方向的分辨率配置为1024。
资料下载 coding无法使用浏览器打开,必须用git工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git...视频观看 百问网驱动大全 I2C协议 参考资料: i2c_spec.pdf 1....硬件连接 I2C在硬件上的接法如下所示,主控芯片引出两条线SCL,SDA线,在一条I2C总线上可以接很多I2C设备,我们还会放一个上拉电阻(放一个上拉电阻的原因以后我们再说)。 2....传输数据类比 怎么通过I2C传输数据,我们需要把数据从主设备发送到从设备上去,也需要把数据从从设备传送到主设备上去,数据涉及到双向传输。...下图:白色背景表示"主→从",灰色背景表示"从→主" 3.3 I2C信号 I2C协议中数据传输的单位是字节,也就是8位。但是要用到9个时钟:前面8个时钟用来传输8数据,第9个时钟用来传输回应信号。
Linux内核将 I2C 驱动分为两部分: I2C 总线驱动, I2C总线驱动就是SOC的 I2C控制器驱动,也叫做 I2C适配器驱动。...I2C驱动 i2c_driver 类似 platform_driver,是我们编写 I2C 设备驱动重点要处理的内容, i2c_driver 结构体定义在 include/linux/i2c.h 文件中...I2C设备 I2C设备结构体i2c_client 结构体定义在 include/linux/i2c.h 文件中,内容如下: struct i2c_client { unsigned short...Linux 内核将 SOC 的 I2C 适配器(控制器)抽象成 i2c_adapter, i2c_adapter 结构体定义在 include/linux/i2c.h 文件中,结构体内容如下: /*...Linux I2C总线的运行机制: 注册I2C驱动 将I2C驱动添加到I2C总线的驱动链表中 遍历I2C总线上的设备链表,根据i2c_device_match函数进行匹配,如果匹配调用i2c_device_probe
资料下载 coding无法使用浏览器打开,必须用git工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git...I2C硬件框架 在一个芯片(SoC)内部,有一个或多个I2C控制器 在一个I2C控制器上,可以连接一个或多个I2C设备 I2C总线只需要2条线:时钟线SCL、数据线SDA 在I2C总线的SCL、SDA...I2C控制器驱动 它根据I2C协议发出各类信号:I2C设备地址、I2C存储地址、数据 它根据I2C协议判断 3....我们讲什么 3.1 对于Linux 从上到下: 先讲I2C协议 APP可以通过两类驱动程序访问设备 I2C设备自己的驱动程序 内核自带的i2c-dev.c驱动程序,它是i2c控制器驱动程序暴露给用户空间的驱动程序...: 先讲I2C协议 APP I2C Device Driver I2C Controller Driver(也被称为adapter)
使用QEMU 2.1 下载 2.2 体验Linux 1. 体验LCD和触摸屏 2. 体验LED 3. 体验按键 4. 读写I2C EEPROM AT24C02 5....1.1 改QEMU的特点: 模拟网卡 模拟LCD显示功能 模拟led灯、按键 模拟at24cxx i2c存储芯片,直接可以通过用户态操作看到效果 模拟触摸屏(单点触摸) 后续会逐渐增加更多的模拟硬件模块...双击运行env.bat, 在里面执行linux.bat即可启动Linux,输入root登录。...体验LCD和触摸屏 执行如下命令: [root@qemu_imx6ul:/]# myfb-test /dev/fb0 // 在屏幕上画同心圆 [root@qemu_imx6ul:/]# ts_test...读写I2C EEPROM AT24C02 首先在“设备管理器”中打开at24c02的界面,然后执行以下命令测试: // 0x50是AT24C02的I2C设备地址 [root@qemu_imx6ul:~]
第一时间看干货文章 1 Linux内核将 I2C 驱动分为两部分: I2C 总线驱动, I2C总线驱动就是SOC的 I2C控制器驱动,也叫做 I2C适配器驱动。...I2C驱动 i2c_driver 类似 platform_driver,是我们编写 I2C 设备驱动重点要处理的内容, i2c_driver 结构体定义在 include/linux/i2c.h 文件中...I2C设备 I2C设备结构体i2c_client 结构体定义在 include/linux/i2c.h 文件中,内容如下: struct i2c_client { unsigned short...Linux 内核将 SOC 的 I2C 适配器(控制器)抽象成 i2c_adapter, i2c_adapter 结构体定义在 include/linux/i2c.h 文件中,结构体内容如下: /*...Linux I2C总线的运行机制: 注册I2C驱动 将I2C驱动添加到I2C总线的驱动链表中 遍历I2C总线上的设备链表,根据i2c_device_match函数进行匹配,如果匹配调用i2c_device_probe
如I2C总线、USB总线、PCI总线等等。以I2C总线为例,在同一组I2C总线上连接着不同的I2C设备。 设备 设备代表真实的、具体的物理器件,在软件上用器件的独特的参数属性来代表该器件。...Linux总线设备框架的工作原理 如果想要弄清楚I2C驱动框架,必须深刻的理解Linux的总线设备框架。之所以会形成这样的框架,很重要的原因是为了代码的复用性。...为了提高驱动的可移植性,Linux抽象出一套管理资源的函数。设备是存在的硬件,在设备里包含自己的属性,也包含需要用到的资源。...3.Linux下I2C驱动程序的体系结构 ---- 对于Linux下的I2C驱动,其体系结构的组成主要分为三个部分 (1)I2C核心:I2C核心提供了I2C总线驱动和设备驱动的注册,注销方法,I2C通信方法...(3)I2C设备驱动:I2C设备驱动(也称为客户驱动)是对I2C硬件体系结构中设备端的实现,设备一般挂接在受CPU控制的I2C适配器上,通过I2C适配器与CPU交换数据。 ?
3019a.jpg 产品概述 IDO-SBC3019-V1B采用瑞芯微 PX30 (ARM Cortex-A35)四核 64 位超强 CPU,搭载 Android/Linux 系统,主频高达 1.5...产品特点 ◆ PX30 超强 CPU 搭载 Android/Linux 系统(Android8.1),安兔兔跑分4W+。 ◆ 10/100M 自适应网口,支持远程网络唤醒功能(WOL)开机。...◆ 丰富的扩展接口: 5路USB2.0接口,1 路 IR接口,1路RS485接口,8个串口(TTL电平 /RS232可选),1路I2C TP接口及 KEY Board 接口等,可以满足多种行业应用要求...显示屏接口与单 LVDS 显示兼容设计,软件可配置 MIPI CSI 输出:1 个 4 Lane MIPI CSI 摄像头接口 耳机输出:支持一路标准 3.5mm 4 段耳机接口 TP 输入:1 个 I2C...触摸屏接口,支持电容触摸屏 USB 接口:5 路扩展 USB2.0 ,其中 2 个 USB2.0 TYPE-A 接口,可用于固件烧录和外接 USB 设备 串口:1 路 S485 接口,8 路 UART
(比如E2PROM驱动) I2C核心层: drivers/i2c/i2c-coere.c I2C总线驱动层(主机控制器驱动层):drivers/i2c/busses/i2c-s3c2410.c I2C设备驱动层...这种方式仅仅只是封装了I2C的基本操作,相当于只是封装了I2C的基本时序,向应用层只提供了I2C基本操作的接口,该接口通用于所有的I2C设备。...I2C核心层 注册I2C总线 由内核开发人员编写的,不涉及具体硬件 给驱动编程人员提供编程接口 I2C总线驱动层 是I2C主机适配器的驱动程序 初始化I2C适配器(控制器) 实现操作方法:根据I2C操作时序进行操作...= i2c_device_remove, .shutdown = i2c_device_shutdown, .pm = &i2c_device_pm_ops, }; 根据Linux...核心层分析可知,I2C总线是根据id_table进行匹配,所以这里并不会按照常规的Linux驱动模型进行match后probe,况且这个驱动里也没有probe方法。
3958-V1A1.jpg 产品特点 ◆ RK3399 超强 CPU 搭载 Android/Linux 系统(Android7.1/Android10正在适配中),安兔兔跑分10W+。...◆ 丰富的扩展接口: 8路USB2.0接口、2路USB3.0接口、1 路 IR接口、2路RS232接口、3 路UART接口(TTL电平)、1路I2C TP接口、2路舵机接口、1路双通道喇叭接口、1路MDB...◆ 完美支持红外、电容、电阻、触摸膜等多种主流触摸屏。...触摸屏接口,支持电容触摸屏 USB 接口:8 路扩展 USB2.0 ,2 路源生 USB3.0 (其中 1 路可为固件下载口) 串口:2 路 RS232 接口,3 路 UART 接口,1 路 DEBUG...IO 扩展:1 路 IO 扩展,可复用 SPI 功能 系统升级:支持本地 USB 升级 操作系统:Android 7.1/ Android10 正在适配中/LINUX RTC 实时时钟:支持 定时开关机
有些设备的触摸屏不准,需要校正后才能正常使用。校正实际上就是配置设备在 Xorg 中的属性,具体属性名与驱动相关,后文描述。...下面开始介绍校正方法: 准备 安装需要用到的工具: xinput-calibrator : 触摸屏校正工具 xinput : 屏幕映射工具,多屏时使用 ---- 校正 执行 xinput_calibrator...Option "CalibrationMatrix" "-43.0 0.0 47.9 0.0 0.1 0.0 0.0 0.0 1.0" EndSection 设备映射 若存在多块屏幕,这时就需要指定触摸屏对应的设备
资料下载 coding无法使用浏览器打开,必须用git工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git...视频观看 百问网驱动大全 I2C系统的重要结构体 参考资料: Linux驱动程序: drivers/i2c/i2c-dev.c I2CTools: https://mirrors.edge.kernel.org...I2C硬件框架 2. I2C传输协议 写操作 读操作 3. Linux软件框架 4....重要结构体 使用一句话概括I2C传输:APP通过I2C Controller与I2C Device传输数据。...在Linux中: 怎么表示I2C Controller 一个芯片里可能有多个I2C Controller,比如第0个、第1个、…… 对于使用者,只要确定是第几个I2C Controller
/errno.h> #include #include #include #include #include #include #include #include <linux/platform_device.h...} } static struct timer_list touch_timer = TIMER_INITIALIZER(touch_timer_fire, 0, 0); /* 当触摸屏按下后...* 比如: 内存ioremap, 中断资源获取, 配置ADCCCON等寄存器 * * 当中断注册好后,当我们按下触摸屏后,就会触发tc中断 */ static int __init s3c_ts_probe...BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); ts->dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); /*设置触摸屏的
资料下载 coding无法使用浏览器打开,必须用git工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git...视频观看 百问网驱动大全 I2C系统驱动程序模型 参考资料: Linux内核文档: Documentation\i2c\instantiating-devices.rst Documentation...\i2c\writing-clients.rst Linux内核驱动程序示例: drivers/eeprom/at24.c 1....I2C驱动程序的层次 I2C Core就是I2C核心层,它的作用: 提供统一的访问函数,比如i2c_transfer、i2c_smbus_xfer等 实现I2C总线-设备-驱动模型,管理:I2C设备(...i2c_client)、I2C设备驱动(i2c_driver)、I2C控制器(i2c_adapter) 2.
视频观看 百问网驱动大全 I2C接口触摸屏驱动分析 参考资料: Linux 5.x内核 Documentation\devicetree\bindings\input\touchscreen\goodix.txt...interrupts = ; irq-gpios = ; reset-gpios = ; }; /* ... */ }; 作为一个I2C...设备,在某个I2C控制器节点下创建一个子节点。...属性: 必备,根据这个属性找到驱动程序:compatible = "xxxx"; 必备,I2C设备地址:reg = ; 可选: 中断 复位引脚 2.2 100ASK_IMX6ULL...irq, NULL, goodix_ts_irq_handler, ts->irq_flags, ts->client->name, ts); } 3.3 中断处理函数分析 通过I2C
这个电流分从触摸屏的四个电极中流出,并且流经这四个电极的电流与手指到四角的距离成正比,控制器通过对这四个电流比例的精确计算,得出触摸点的位置。...当手触摸屏体的时候,由于手指与大地之间就相当于接了一个Cf的并联电容,如下图(3)所示。 ? 等效为如图(4)所示: ?...分区法: 将整个触摸屏物理分割成多个区域,由于每个区域确定一个操作,这样就可以避免鬼点的操作。 总结自电容的优点是简单、计算量小,满足X+Y的计算。...检测互电容大小时,横向的电极依次发出激励信号,纵向的所有电极同时接收信号,这样可以得到所有横向和纵向电极交汇点的电容值大小,即整个触摸屏的二维平面的电容大小。...根据触摸屏二维电容变化量数据(触摸后电容值减小),可以计算出每一个触摸点的坐标。因此,屏上即使有多个触摸点,也能计算出每个触摸点的真实坐标。 ?
legacy /dev/psaux device //PS2鼠标鼠标指向的鼠标设备文件 [ ] Mice ---> //其它各种鼠标驱动,包括PS2鼠标、I2C...Generic input layer -> Touchscreens Samsung S3C2410/generic touchscreen input driver //加上自带的触摸屏驱动... USB Touchscreen Driver //去掉USB触摸屏驱动 去掉CONFIG_SSB_POSSIBLE...-3.4.2 linux-3.4.2_new //更改文件名 tar -xjf linux-3.4.2.tar.bz2 //解压需要比较的源文件 diff -urN linux...-3.4.2 linux-3.4.2_new > linux-3.4.2_new.patch //生成补丁文件linux-3.4.2_new.patch
领取专属 10元无门槛券
手把手带您无忧上云