Linux I2C流程分析(主要是probe的方式)
时间:2020-04-07
大小:475.5KB
阅读数:466
查看他发布的资源
资料介绍
Linux I2C总线分析(主要是probe的方式)
Linux I2C 总线浅析
㈠ Overview
[pic]
Linux的I2C体系结构分为3个组成部分:
·I2C核心:
I2C核心提供了I2C总线驱动和设备驱动的注册、注销方法,I2C通信方法(即“algorithm
”)上层的、与具体适配器无关的代码以及探测设备、检测设备地址的上层代码等。这部
分是与平台无关的。
·I2C总线驱动:
I2C总线驱动是对I2C硬件体系结构中适配器端的实现。I2C总线驱动主要包含了I2C适配
器数据结构i2c_adapter、I2C适配器的algorithm数据结构i2c_algorithm和控制I2C适配
器产生通信信号的函数。经由I2C总线驱动的代码,我们可以控制I2C适配器以主控方式
产生开始位、停止位、读写周期,以及以从设备方式被读写、产生ACK等。不同的CPU平
台对应着不同的I2C总线驱动。
总线驱动的职责,是为系统中每个I2C总线增加相应的读写方法。但是总线驱动本身并不
会进行任何的通讯,它只是存在在那里,等待设备驱动调用其函数。
这部分在MTK 6516中是由MTK已经帮我们实现了的,不需要我们更改。
· I2C设备驱动:
I2C设备驱动是对I2C硬件体系结构中设备端的实现。设备一般挂接在受CPU控制的I2C适
配器上,通过I2C适配器与CPU交换数据。I2C设备驱动主要包含了数据结构i2c_driver和
i2c_client,我们需要根据具体设备实现其中的成员函数。在Linux内核源代码中的dri
vers目录下的i2c_dev.c文件,实现了I2C适配器设备文件的功能,应用程序通过“i2c-
%d”文件名并使用文件操作接口open()、write()、read()、ioctl()和close()等来访问
这个设备。应用层可以借用这些接口访问……
版权说明:本资料由用户提供并上传,仅用于学习交流;若内容存在侵权,请进行举报,或
联系我们 删除。