linux设备驱动程序-i2c(2)-adapter和设备树的解析
linux设备驱动程序-i2c(2)-adapter和设备树的解析 (注: 基于beagle bone green开发板,linux4.14内核版本) 在本系列linux内核i2c框架的前两篇,分别讲了: linux设备驱动程序-i2c(0)-i2c设备驱动源码实现 linux设备驱动程序-i2c(1):i2c总线的添加与实现 而在 linux设备驱动程序--串行通信驱动框架分析 中,讲到linux内核中串行通信驱动框架大体分为三层: 应用层(用户空间接口操作) 驱动层(包含总线、i2c-core的实现、以及总线的device和driver部分) i2c硬件读写层 在上一章节我们讲了整个总线的实现以及device和driver的匹配机制,这一章节我们要来讲讲i2c硬件读写层的实现。 i2c的适配器 我们来回顾一下,在本系列文章的第一章 linux设备驱动程序-i2c(0)-i2c设备驱动源码实现 源码中是怎么使用i2c和设备进行通信的呢? 1、首先,在总线的device部分,使用 struct i2c_adapter *adap = i2c_get_adapter(2) 这个接口,获取一个struct i2c_adapter结构体指针,并关联到i2c_client中。 2、然后,在总线driver的probe部分,在/dev目录下创建文件,并关联对应的file