
#I2C驱动
文章平均质量分 92
嵌入式与Linux那些事
这个作者很懒,什么都没留下…
展开
-
【驱动】I2C驱动分析(六)-I2C驱动模板
Linux I2C驱动是嵌入式Linux驱动开发人员经常需要编写的一种驱动,因为凡是系统中使用到的I2C设备,几乎都需要编写相应的I2C驱动去配置和控制它,例如 RTC实时时钟芯片、音视频采集芯片、音视频输出芯片、EEROM芯片、AD/DA转换芯片等等。下面我们看下如何写一个基本的I2C驱动。原创 2024-01-18 22:58:20 · 1540 阅读 · 0 评论 -
【驱动】I2C驱动分析(五)-模拟I2C驱动
在drivers/i2c/busses下包含各种I2C总线驱动,使用GPIO模拟I2C总线的驱动i2c-gpio.c,这里只分析i2c-gpio.c。i2c-gpio.c它是gpio模拟I2C总线的驱动,总线也是个设备,在这里将总线当作平台设备处理,那驱动当然是平台设备驱动,看它的驱动注册和注销函数。原创 2024-01-18 22:57:21 · 1348 阅读 · 0 评论 -
【驱动】I2C驱动分析(四)-关键API解析
在Linux内核源代码中的driver目录下包含一个i2c目录i2c-core.c这个文件实现了I2C核心的功能以及/proc/bus/i2c*接口。i2c-dev.c实现了I2C适配器设备文件的功能,每一个I2C适配器都被分配一个设备。通过适配器访设备时的主设备号都为89,次设备号为0-255。原创 2024-01-18 22:56:39 · 1390 阅读 · 0 评论 -
【驱动】I2C驱动分析(三)-关键数据类型
i2c_adapter对应与物理上的一个适配器,而i2c_algorithm对应一套通信方法,一个i2c适配器需要i2c_algorithm中提供的(i2c_algorithm中的又是更下层与硬件相关的代码提供)通信函数来控制适配器上产生特定的访问周期。i2c_adapter和i2c_client的关系与i2c硬件体系中适配器和设备的关系一致,即i2c_client依附于i2c_adapter,由于一个适配器上可以连接多个i2c设备,所以i2c_adapter中包含依附于它的i2c_client的链表。原创 2024-01-18 22:55:56 · 903 阅读 · 0 评论 -
【驱动】I2C驱动分析(二)-驱动框架
I2C 驱动属于总线-设备-驱动模型的,与I2C总线设备驱动模型相比,大体框架是一样,系统的整体框架如下所示。最上层是应用层,在应用层用户可以直接用open read write对设备进行操作,往下是设备驱动层,这个就是外围的比如一些用I2C总线连接到SOC的传感器或者EEPROM的驱动程序,这个一般由普通驱动工程师负责,再往下的I2C-Core是核心层,这个是Linux内核源码里面本来就有的,这里面主要是一些驱动和设备的注册函数以及i2c_transfer函数,原创 2024-01-18 22:54:57 · 1556 阅读 · 0 评论