Linux驱动开发 (IIC子系统)

1.IIC协议简介 

在之前的ARM裸机里面有介绍:ARM裸机 - I2C通信协议是最常用的协议_一对多i2c-CSDN博客

2.Linux的IIC子系统框架

Linux驱动开发 (IIC子系统)_第1张图片

I2C主机驱动:I2C主机控制器的驱动,一般由SoC芯片厂商负责设计实现,用于控制II2C主机控制器发出时序信号。

I2C Core:为上层提供统一的API接口和对其他模块进行注册和注销等管理等。

I2C 驱动和我们之前接触到的平台总线设备驱动非常类似,都有总线、设备和驱这三者。

I2C驱动框架的主要目标是:让驱动开发者可以在内核中方便的添加自己的I2C设备的驱动程序,从而可以更容易的在linux下驱动自己的I2C接口硬件。

源码中I2C相关的驱动均位于:drivers/i2c目录下。

3.linux内核的I2C子系统源代码分析

I2C子系统的4个关键结构体:

struct i2c_adapter : I2C适配器

struct i2c_adapter {
	struct m

你可能感兴趣的:(Linux驱动,linux,驱动开发,运维)