通信方式总结及I2C驱动详解

1.常见通信方式

在这里插入图片描述

2.I2C总线

2.1 I2C总线硬件连接

在这里插入图片描述

2.2 I2C软件架构

在这里插入图片描述

2.3 I2C子系统实现流程

(1)i2c adapter创建i2c client;
(2)i2c adapter中的i2c client与i2c driver通过i2c core完成注册匹配;
(3)i2c driver传递上层应用的数据至i2c client;
(4)i2c client通过i2c adapter找到对应的i2c algorithm,并传送数据;
(5)i2c控制器产生SCL和SDA。

3. I2C设备树实现

在这里插入图片描述
    其中节点i2c_4表示采用的是第4组i2c控制器(每组控制器有SCL和SDA),采用了两组i2c控制器:i2c_4和 i2c_5,其中i2c_4的地址为78b8000,i2c_5的地址为78b9000。
    i2c_4表示适配器节点,其地址为0x78b8000(在mdm9607芯片上),wcd9xxx_codec表示具体设备(也是一个芯片)节点,其地址是0x0d(在设备芯片上)。

3.1 查看设备节点

    1)在/sys/firmware/devicetree/base(快捷目录/proc/device-tree)目录下:是以目录结构呈现的dtb文件。 根节点对应base目录, 每一个节点对应一个目录, 每一个属性对应一个文件;
    2)在/sys/devices/platform目录下:展现的是现在的所有注册的的平台设备。如果设备下面有of_node,就证明这个platform_device是通过设备树传参来创建的;若是没有of_node的一个链接文件,那么它就不是通过设备树文件创建的,可能是内核编译的时候创建或者通过安装模块创建。

3.2 例子

(1)所有设备树在/proc/device-tree目录下,而i2c挂接在soc下,故在/proc/device-tree /soc下可看到节点名字:
在这里插入图片描述
通过cat compatible可查看设备名称属性:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值