前面几片文章介绍了IIC裸机及Linux下驱动开发内容:
《Exynos4412 裸机开发 —— IIC总线(转)》
《Linux IIC总线驱动开发(一) — IIC 基础概念及驱动架构分析(转)》
《Linux IIC总线驱动开发(二)—— IIC 驱动开发(转)》
现在归纳总结一下IIC相关知识点:
一 、问题
1、IIC总线上的设备是怎么描述的?
struct i2c_client
{
struct device dev;
...
};
2、IIC总线上的驱动是怎么描述的?
struct i2c_dri...
Linux IIC 驱动阅读全文
前面在《Linux IIC总线驱动开发(一) — IIC 基础概念及驱动架构分析(转)》中学习了IIC驱动的架构,下面进入我们的驱动开发过程:
-------------------------------开发环境-----------------------------
开发板:Exynos4412
Linux 内核版本:Linux 3.14
IIC 从机对象:陀螺仪MPU6050
-------------------------------开发环境-----------------------------
首先看一张代码层次图,有助于我们的理解:
iic-struct
上面这些代...
Linux IIC总线阅读全文
最近在温故Linux的总线设备驱动模型,下面分析一下bus_register的详细调用过程及行为目的:
kobject,kset,ktype。这三个结构联合起来一起构成了整个设备模型的基石,请看下面两篇文章:
《设备模型之kobject,kset及其关系》
《设备模型之总线,驱动,设备》
devices_ket和driver_kset
上图说明了总线通过两个数据结构:devices_ket和driver_kset来管理注册在此总线上的所有的设备和驱动,为了方便遍历,linux增加了klist_devi...
bus_register分析阅读全文