LINUX驱动之IIC驱动

本文介绍了Linux I2C驱动的三个组成部分:核心层、适配器层和设备驱动层。详细阐述了I2C设备驱动层的bus-dev-drv模型,包括i2c_client和i2c_adapter数据结构,以及match和probe过程。同时分析了I2C适配器驱动,重点讲解了struct i2c_adapter结构和数据传输函数。
摘要由CSDN通过智能技术生成

前言

在这里插入图片描述
1.Linux的I2C体系结构分为3个组成部分
1.1 I2C核心层
提供了I2C总线驱动和设备驱动的注册,注销方法,I2C通信方法上层的即Algorithm)与具体适配器无关的代码以及探测设备,检测设备地址的上层代码等,主要用于提供统一的I2C操作函数
1.2 I2C适配器层
对I2C硬件体系结构中适配器端的实现,适配器可由CPU控制,甚至可以直接集成在CPU内部,主要用于IIC设备的硬件操作
1.3 I2C设备驱动层
I2C设备驱动(也称为客户驱动)是对设备端的实现,设备一般挂接在受CPU控制的I2C适配器上,通过I2C适配器与CPU交换数据

2.I2C设备驱动层采用bus-dev-drv模型设计
在这里插入图片描述
I2C总线上的device可以包含两种数据:i2c_client和i2c_adapter,还提供了match,probe方法,driver端必须提id_table,device端必须提供name,在总线的match函数中会匹配id_table->name和client->name,如果一致则调用总线的probe函数,对于总线的probe函数功能如下所述,下图为简化后的代码,client表示匹配成功的dev,driver表示匹配成功的drv,该函数作用在于设置client->driver

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值