一步一步教你构建一个MPU6050(I2C类)驱动(一)

本文详细介绍了如何构建MPU6050的I2C驱动,从i2c基本协议和时序入手,深入探讨i2c子系统软件框架,特别是设备树在驱动匹配中的作用。通过设备树文件的修改,展示了如何为硬件添加驱动并生成新的设备树文件,为后续的驱动开发打下基础。
摘要由CSDN通过智能技术生成

1 i2c基本协议和时序

i2c基础的知识这里就不提了,直接从时序开始,直接来看看i2c的波形

2 i2c子系统软件框架

先来看看i2c总线的分层思想:

在分层图中我们可以看到,driver和device在核心层中分别成为了2条链表,核心层会按一定的规则匹配两条链表中的元素。

查看内核源码 i2c-core.c ,找到了匹配的函数如下:

static int i2c_device_match(struct device *dev, struct device_driver *drv)
{
	struct i2c_client	*client = i2c_verify_client(dev);
	struct i2c_driver	*driver;

	if (!client)
		return 0;

	/* Attempt an OF style match */
	if (of_driver_match_device(dev, drv))
		return 1;

	/* Then ACPI style match */
	if (acpi_driver_match_device(dev, drv))
		return 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值