Linux内核IIC子系统框架

IIC子系统框架

 

可以看到iic子系统分为三层。

1、设备驱动层:这一层是我们重点关注的,含有IIC设备层(相当于平台设备驱动模型的设备)i2c_client,IIC设备驱动层(相当于相当于平台设备驱动模型的驱动)i2c_driver。i2c_client里含有需要通信的从机的所有信息,配置i2c_client需要使用到第三层的适配器驱动层。设备驱动层给应用层提供操作底层硬件的接口。

2、核心层:具有承上启下作用,为设备驱动层和适配器驱动层提供编程的接口,将设备驱动层的i2c_driver和i2c_client相匹配,把需要通信的从机挂载到主机上。作为驱动开发者无需关注此层。

3、适配器驱动层:内核使用i2c_adapter结构体描述一个适配器驱动,从而实现我们需要通信的IIC控制器驱动程序还有IIC协议标准时序。这一层是由芯片厂商提供。

IIC子系统分层可以使得具体的设备驱动和硬件无关,移植起来方便,多个设备操作同一个总线时无资源冲突。

首先来看设备驱动层的iic_driver。

 

我们重点关注其中的四个成员即可。

struct i2c_driver{

Unsigned int class;  //设备的分类,传感器

Int (*probe)(struct i2c_client*,const struct i2c_device_id *);  // 和i2c_device匹配时会调用此函数

Int (*remove)(struct i2c_client *);  /和i2c_device解除匹配关系时会调用此函数

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

D584640810

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值