ATSAMA5D35下pcf8563 i2c驱动分析

本文介绍了在ATSAMA5D35板载Linux 3.6.0内核环境下,针对PCA8563 I2C设备驱动的分析,包括i2C设备驱动的工作调用过程、驱动框架理解和ATSAMA5D35中PCA8563的驱动实现。重点讲述了设备树在驱动匹配中的作用,以及如何通过probe函数进行设备初始化。
摘要由CSDN通过智能技术生成

由于使用的linux内核版本为3.6.0 由于3.6版本的内核使用了dts,导致很难找到这方面的资料,对于一个初学者的我来说,花了很久才大概明白这里面驱动的实现方法,忘各位前辈指导;

i2C 设备驱动的工作调用过程:当调用i2c_add_driver函数向I2C总线(i2c-core.c文件中注册的”i2c”总线)增加一个i2c_driver时,会遍历总线中的所有i2c_client,调用总线注册的match函数I2C适配器上是否有与i2c_driver匹配的i2c_client,如果匹配会调用I2C注册的probe函数,然后再调用i2c_driver定义的probe来进行关联和初始化工作。

1.在/driver/i2c/buses/.. 有和平台相关的i2c代码文件,本次使用的平台为ATSAMA5D35,故我所关注的文件为I2c-at91.c。在介绍此文件之前,首先介绍一下我之前学习的i2c框架,设备——总线——驱动模型。这是我对驱动框架的理解,驱动可拆分为driverv——device两部分,dev(i2c-client)会将自己添加到bus的设备链表(注册设备),drv(i2c-drv)会将自己添加到bus的驱动链表(注册驱动),当有设备被添加到bus如果match(i2c-bus-type)成功,将会调用对应的驱动中的probe函数。在这中间构造i2c-client的方法又有4种,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值