linux i2c子系统源码分析
文章平均质量分 70
本专栏对linux i2c子系统源码进行系统并且详细的分析、注释,提高对linux子系统的认识,以及加快驱动开发。
小艾的01
这个作者很懒,什么都没留下…
展开
-
linux i2c子系统代码分析1 ---概述以及主要数据结构
概述:i2c是很流行的串行半双工通信协议,主从架构。linux 中有关于i2c子系统的实现支持,其和平台无关的,具体实现需要驱动工程师自己实现。linux i2c中核心代码是i2c-core.c 其有i2c适配器、i2c算法、i2c驱动以及i2c设备注册、注销以及数据处理的实现。再介绍下i2c子系统各部分的关系:i2c适配器是设备,是i2c具体外设(外部或芯片内部)的抽象,i2c算原创 2016-09-03 13:46:10 · 1268 阅读 · 0 评论 -
linux i2c子系统代码分析2 ---操作函数i2c_init介绍
2.i2c子系统操作函数,i2c-core.c上面介绍了i2c子系统重要的数据结构,下面介绍i2c子系统的适配器、算法、设备、设备驱动注册、注销以及重要的数据处理函数在kernel/driver/linux/i2c/i2c-core.c文件中static int __init i2c_init(void){int retval;retval原创 2016-09-03 13:56:14 · 2472 阅读 · 0 评论 -
linux i2c子系统代码分析3 ---操作函数i2c_add_adapter i2c_add_numbered_adapter介绍
二.i2c子系统操作函数,i2c-core.ckernel/driver/linux/i2c/i2c-core.c/** * i2c_add_adapter - declare i2c adapter, use dynamic bus number * @adapter: the adapter to add * Context: can sleep * *原创 2016-09-03 17:56:28 · 4239 阅读 · 0 评论 -
linux i2c子系统代码分析4 ---操作函数i2c_add_driver i2c_register_driver介绍
下面介绍 i2c 驱动相关操作函数i2c_add_driverkernel/include/linux/i2c.hstatic inline int i2c_add_driver(struct i2c_driver *driver){return i2c_register_driver(THIS_MODULE, driver);} i2c_add_driver原创 2016-09-05 10:32:10 · 5066 阅读 · 0 评论 -
linux i2c子系统代码分析5 ---操作函数i2c_new_device i2c_new_probed_device i2c_register_board_info介绍
下面介绍i2c设备操作相关函数1、kernel/driver/linux/i2c/i2c-core.cstruct i2c_client *i2c_new_device(struct i2c_adapter *adap, struct i2c_board_info const *info) i2c适配器静态增加新i2c设备,根据 i2c_board_info 静态设备声明原创 2016-09-05 13:08:20 · 5768 阅读 · 0 评论 -
linux i2c子系统代码分析6 ---操作函数i2c数据处理函数
下面介绍i2c的数据处理函数1、 i2c_master_send 在主模式下发送一个信息kernel/driver/linux/i2c/i2c-core.c/** * i2c_master_send - issue a single I2C message in master transmit mode * @client: Handle to slave原创 2016-09-05 14:27:23 · 1498 阅读 · 0 评论 -
linux i2c子系统代码分析7 ---i2c适配器注册时机、方法以及例程
i2c适配器注册时机:1、在paltform驱动中注册,在板级初始化时注册一个platform设备,然后在注册platform驱动时将i2c适配器注册。这种方法属于适配器静态注册,是soc中i2c适配器通用注册方法,因为这样保证后续的i2c驱动注册以及i2c设备注册能找到匹配的适配器,i2c驱动和i2c设备注册在i2c适配器注册之后。2、加载一个内核模块,在模块中完成i2c适配器注册,原创 2016-09-06 11:08:48 · 965 阅读 · 0 评论 -
linux i2c子系统代码分析8 ---i2c子系统内核目录介绍
i2c子系统核心目录在kernel/driver/linux/i2c,i2c核心头文件在kernel/include/linux/i2c.h在kernel/driver/linux/i2c中:i2c-core.c是包含i2c适配器、i2c驱动、i2c设备注册、注销以及i2c数据处理函数等核心操作的文件。i2c-boardinfo.c是i2c静态声明i2c设备的文件i2c-dev.c原创 2016-09-05 17:05:10 · 933 阅读 · 0 评论 -
linux i2c子系统代码分析9---i2c设备的注册方法
i2c设备注册方法有:1、板级代码初始化时i2c board info注册进链表,后面i2c适配器注册时扫描链表,将i2c设备注册到总线。2、i2c内核模块动态加载,在内核模块中用i2c_new_device和 i2c_new_probed_device函数注册i2c设备,两者区别是i2c_new_device根据提供的i2c board info注册设备,i2c_new_probed_dev原创 2016-09-13 14:56:23 · 1239 阅读 · 1 评论