添加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设备和驱动的创建流程及方法相关推荐

  1. linux amd显卡 驱动程序,安装AMD显卡官方驱动的后果,坑啊!

    okzokz123 于 2012-12-06 19:37:03发表: 开机选修复模式不要回车 按e ,然后吧ro single改成 rw single init=/bin/bash 再按 ctrl+x ...

  2. 支持驱动最好的linux软件,Linux平台设备和驱动

    一 platform总线 一个现实的linux设备驱动通常需要挂接在一种总线上,对于本身依附于PCI,USB,IIC,SPI等的设备而言,这自然不是问题,但是在嵌入式系统里面,SOC系统中集成的独立的 ...

  3. 嵌入式linux 配置usb otg,嵌入式linux系统环境下USB设备的驱动实现

    0  引言 嵌入式linux系统环境以其易于移植裁减.内核小.效率高.完整.原代码开放及性能优异等特点,在嵌入式领域得到了非常广泛的应用.Linux的USB设备端的源代码中主要有USB device的 ...

  4. 一文搞懂 USB 设备端驱动框架

    关注+星标公众号,不错过精彩内容 转自 | 漫谈嵌入式 hello 大家好,今天带领大家学习一下USB 设备端驱动 内核版本:4.4.94 1. Linux USB 子系统 在介绍设备端驱动前,我们先 ...

  5. 【Linux驱动】I2C子系统与触摸屏驱动

    由于学习触摸屏驱动涉及到中断以及I2C相关的知识,因此先介绍一下I2C的驱动框架. 触摸屏与I2C总线的关系 关于I2C的基础概念和原理参考我的这篇博客:[裸机]嵌入式相关问题汇总(二.I2C通信概念 ...

  6. Linux下触摸屏驱动程序分析

    [摘要: 本文以 linux 3.5--Exynos4412仄台,剖析 触摸屏 驱动焦点内容.Linux下触摸屏驱动(以ft5x06_ts为例)须要懂得以下学问: 1. I2C协定 2. Exynos ...

  7. 嵌入式Linux系统之I.MX6触摸屏驱动程序TSC2007.C的分析、移植与校准

    学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 今天来记录一下I.MX6开发板移植触摸屏驱动程序的过程分析.在移植驱 ...

  8. Linux I2C核心、总线与设备驱动(一)

    本章导读 I2C总线仅仅使用SCL.SDA两根信号线就实现了设备之间的数据交互,极大地简化对硬件资源和PCB板布线空间的占用.因此,I2C总线被非常广泛地应用在EEPROM.实时钟.小型LCD等设备与 ...

  9. Linux I2C核心、总线与设备驱动

    Linux I2C核心.总线与设备驱动 I2C总线仅仅使用SCL. SDA这两根信号线就实现了设备之间的数据交互,极大地简化了对硬件资源和PCB板布线空间的占用.因此, I2C总线非常广泛地应用在EE ...

最新文章

  1. 24GHz和77GHz毫米波雷达技术细节
  2. 实施Service Mesh前,你需要考虑这几个问题
  3. WindowManager.LayoutParams类22
  4. Dubbo OPS工具——dubbo-admin dubbo-monitor
  5. golang x509包 数字证书相关介绍
  6. python项目实例初学者-经典Python案例,初学者的小帮手,立马学会Python!
  7. Android根据URL下载文件保存到SD卡
  8. python如何控制运行时间_python 限制函数执行时间,自己实现
  9. [luogu3380][bzoj3196]【模板】二逼平衡树【树套树】
  10. 代码可读性、可调式、可维护性
  11. 修改Chrome默认搜索引擎
  12. spring boot项目搭建 连接数据库完成项目基础架构布局
  13. educoder 数据挖掘算法原理与实践:决策树
  14. [论文笔记|LIC-Fusion]LIC-Fusion: LiDAR-Inertial-Camera Odometry
  15. iOS LBS地图服务--高德地图使用大全
  16. 2020中科大大数据学院 计算机专硕
  17. ios开发面试常见问题及答案
  18. antd表单设置默认值
  19. Discuz!uc.key泄露导致代码注入漏洞uc.php的解决方法
  20. idea插件docker图像化的使用

热门文章

  1. 软件测试之黑盒测试-等价类划分法
  2. vue——走马灯-类轮播图
  3. 非线性时延系统matlab框图,非线性主-从时延系统的时滞相关有限时间同步控制方法与流程...
  4. js后退页面不重新加载_快应用:支持加载单独JS文件的规范思考
  5. activemq jdbc mysql_activeMQ JDBC Master Slave
  6. python调用mysql数据库sql语句过长有问题吗_python连接MYSQL数据库,调用update语句后无法更新数据,解决...
  7. 环形队列出队的元素怎么输出出来_队列:队列在线程池等有限资源池中的应用...
  8. 【转】CT中的“层“与“排“的区别
  9. 【转】C#检查键盘大小写锁定状态的方法
  10. 【转】理解Azure订阅,账户,活动目录AD,租户等概念