前言:
本文使用触摸屏iic驱动,驱动编写中要使用总线,设备,驱动分层的思想,IIC总线,触摸屏驱动,触摸屏设备,
IIC总线驱动
一般 SOC 的 I2C 总线驱动都是由半导体厂商编写的,比如 I.MX6U 的 I2C 适配器驱动 NXP 已经编写好了,这个不需要用户去编写。因此 I2C 总线驱动对我们这些 SOC 使用者来说是被屏蔽掉的,我们只要专注于 I2C 设备驱动即可。除非你是在半导体公司上班,工作内容就是写 I2C 适配器驱动。对于我们 I2C 设备驱动编写人来说,重点工作就是构建 i2c_driver,构建完成以后需要向,Linux 内核注册这个 i2c_driver。i2c_add_driver(&xxx_driver);用来注册IIC设备。
IIC设备驱动
在使用设备树的时候,linux系统可以获取设备树,完成设备和驱动的匹配。不需要编写设备驱动,驱动中的 compatible 属性和设备中的 compatible 属性相匹配,因此驱动中对应的 probe 函数就会执行。
IIC驱动模板
iic结构体:
IIC匹配
设备和驱动的匹配过程也是由 I2C 总线完成的,由IIC总线调用match函数完成匹配,以下是匹配的几种方式:
常用的是有设备树(of_driver_match_device)和无设备( i2c_match_id)
1.of_driver_match_device 函数用于完成设备树设备和驱动匹配。比较 I2C 设备点的 compatible 属性和 of_device_id 中的 compatible 属性是否相等,如果相当的话就表示 I2C设备和驱动匹配。
2.i2c_match_id 函数用于传统的、无设备树的 I2C 设备和驱动匹配过程。比较 I2C设备名字和 i2c_device_id 的 name 字段是否相等,相等的话就说明 I2C 设备和驱动匹配。文章来源:https://www.toymoban.com/news/detail-410523.html
一般设备驱动为了兼容性都支持设备树和无设备树两种匹配方式。也就是第一种匹配方式一般都会存在,第三种和第四种只要存在一种就可以,一般用的最多的还是第四种,也就是直接比较驱动和设备的 name 字段,毕竟这种方式最简单了。name 属性用于传统的驱动与设备匹配,也就是检查驱动和设备的 name 字段是不是相同。
文章来源地址https://www.toymoban.com/news/detail-410523.html
到了这里,关于Linux 触摸屏 (IIC驱动详解)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!