linux i2c触摸屏驱动程序,触摸屏i2c设备和驱动的创建流程及方法
添加i2c设备的流程:
1. 初始化 i2c_board_info 结构信息 和 i2c_driver 结构
//设备驱动结构体
static struct i2c_driver goodix_ts_driver = {
.probe = goodix_ts_probe,
.remove = goodix_ts_remove,
#ifndef CONFIG_HAS_EARLYSUSPEND
.suspend = goodix_ts_suspend,
#endif
.id_table = goodix_ts_id,
.driver = {
.name = GOODIX_I2C_NAME,
.owner = THIS_MODULE,
},
};
2.获得i2c_bus上的adapter
adapter = i2c_get_adapter( i2c_set_data->i2c_bus);
3. 通过adapter和 i2c_board_info 创建新设备
client = i2c_new_device(adapter, &info);
4. 把adapter 放入i2c总线
i2c_put_adapter(adapter);
5. 通过 i2c_driver 添加i2c驱动(添加驱动之后,i2c子系统就知道该调用goodix_ts_suspend等函数了)
ret = i2c_add_driver(driver);
goodix gt818蓝波触摸屏i2c驱动的流程:
1.定义init函数,并使用late_initcall(init函数)
goodix_ts_init -->
create_workqueue,
gt818_sprd_add_i2c_device--> //这一步即 添加i2c设备的流程
i2c_get_adapter,
i2c_new_device,
i2c_put_adapter,
i2c_add_driver(driver)
late_initcall(goodix_ts_init); // 之所以使用late_initcall是因为要在i2c子系统初始化完成之后,才能使用i2c子系统,所>以必须在系统比较晚一点的阶段进行。
2.定义 exit函数,并使用 late_initcall(exit函数) goodix_ts_exit--> i2c_del_driver, i2c_unregister_device, destroy_workqueue, module_exit(goodix_ts_exit);
linux i2c触摸屏驱动程序,触摸屏i2c设备和驱动的创建流程及方法相关推荐
- linux amd显卡 驱动程序,安装AMD显卡官方驱动的后果,坑啊!
okzokz123 于 2012-12-06 19:37:03发表: 开机选修复模式不要回车 按e ,然后吧ro single改成 rw single init=/bin/bash 再按 ctrl+x ...
- 支持驱动最好的linux软件,Linux平台设备和驱动
一 platform总线 一个现实的linux设备驱动通常需要挂接在一种总线上,对于本身依附于PCI,USB,IIC,SPI等的设备而言,这自然不是问题,但是在嵌入式系统里面,SOC系统中集成的独立的 ...
- 嵌入式linux 配置usb otg,嵌入式linux系统环境下USB设备的驱动实现
0 引言 嵌入式linux系统环境以其易于移植裁减.内核小.效率高.完整.原代码开放及性能优异等特点,在嵌入式领域得到了非常广泛的应用.Linux的USB设备端的源代码中主要有USB device的 ...
- 一文搞懂 USB 设备端驱动框架
关注+星标公众号,不错过精彩内容 转自 | 漫谈嵌入式 hello 大家好,今天带领大家学习一下USB 设备端驱动 内核版本:4.4.94 1. Linux USB 子系统 在介绍设备端驱动前,我们先 ...
- 【Linux驱动】I2C子系统与触摸屏驱动
由于学习触摸屏驱动涉及到中断以及I2C相关的知识,因此先介绍一下I2C的驱动框架. 触摸屏与I2C总线的关系 关于I2C的基础概念和原理参考我的这篇博客:[裸机]嵌入式相关问题汇总(二.I2C通信概念 ...
- Linux下触摸屏驱动程序分析
[摘要: 本文以 linux 3.5--Exynos4412仄台,剖析 触摸屏 驱动焦点内容.Linux下触摸屏驱动(以ft5x06_ts为例)须要懂得以下学问: 1. I2C协定 2. Exynos ...
- 嵌入式Linux系统之I.MX6触摸屏驱动程序TSC2007.C的分析、移植与校准
学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 今天来记录一下I.MX6开发板移植触摸屏驱动程序的过程分析.在移植驱 ...
- Linux I2C核心、总线与设备驱动(一)
本章导读 I2C总线仅仅使用SCL.SDA两根信号线就实现了设备之间的数据交互,极大地简化对硬件资源和PCB板布线空间的占用.因此,I2C总线被非常广泛地应用在EEPROM.实时钟.小型LCD等设备与 ...
- Linux I2C核心、总线与设备驱动
Linux I2C核心.总线与设备驱动 I2C总线仅仅使用SCL. SDA这两根信号线就实现了设备之间的数据交互,极大地简化了对硬件资源和PCB板布线空间的占用.因此, I2C总线非常广泛地应用在EE ...
最新文章
- 24GHz和77GHz毫米波雷达技术细节
- 实施Service Mesh前,你需要考虑这几个问题
- WindowManager.LayoutParams类22
- Dubbo OPS工具——dubbo-admin dubbo-monitor
- golang x509包 数字证书相关介绍
- python项目实例初学者-经典Python案例,初学者的小帮手,立马学会Python!
- Android根据URL下载文件保存到SD卡
- python如何控制运行时间_python 限制函数执行时间,自己实现
- [luogu3380][bzoj3196]【模板】二逼平衡树【树套树】
- 代码可读性、可调式、可维护性
- 修改Chrome默认搜索引擎
- spring boot项目搭建 连接数据库完成项目基础架构布局
- educoder 数据挖掘算法原理与实践:决策树
- [论文笔记|LIC-Fusion]LIC-Fusion: LiDAR-Inertial-Camera Odometry
- iOS LBS地图服务--高德地图使用大全
- 2020中科大大数据学院 计算机专硕
- ios开发面试常见问题及答案
- antd表单设置默认值
- Discuz!uc.key泄露导致代码注入漏洞uc.php的解决方法
- idea插件docker图像化的使用
热门文章
- 软件测试之黑盒测试-等价类划分法
- vue——走马灯-类轮播图
- 非线性时延系统matlab框图,非线性主-从时延系统的时滞相关有限时间同步控制方法与流程...
- js后退页面不重新加载_快应用:支持加载单独JS文件的规范思考
- activemq jdbc mysql_activeMQ JDBC Master Slave
- python调用mysql数据库sql语句过长有问题吗_python连接MYSQL数据库,调用update语句后无法更新数据,解决...
- 环形队列出队的元素怎么输出出来_队列:队列在线程池等有限资源池中的应用...
- 【转】CT中的“层“与“排“的区别
- 【转】C#检查键盘大小写锁定状态的方法
- 【转】理解Azure订阅,账户,活动目录AD,租户等概念