
linux i2c
不用昵称的昵称
这个作者很懒,什么都没留下…
展开
-
Linux下I2c框架分析之虚拟设备(六)
参考:https://www.cnblogs.com/zzb-Dream-90Time/p/7605473.html宋宝华《Linux设备驱动开发详解:基于最新的Linux4.0内核》看过宋宝华《Linux设备驱动开发详解:基于最新的Linux4.0内核》的朋友们会发现,在i2c章有一节是i2c-dev.c文件分析,这一节只做了一个大概的分析,今天咱们看看它到底能做什么。i2c-dev.c文件完全可以被看作是一个I2C设备驱动,它实现的i2c_client是虚拟、临时的, 主要是为了便于从用户空间操作原创 2020-06-24 16:56:02 · 442 阅读 · 0 评论 -
linux下I2c框架分析之通信(五)
平台:君正x1000内核:Linux3.5在linux的i2c框架中,设备和主机的通信数据都是经过适配器处理的,所以通信的协议的实现也是依靠适配器驱动实现的。在通信结构i2c_algorithm中主要实现两个成员.master_xfer和.functionality ,i2c通信协议的实现主要是master_xfer完成,functionality主要是返回支出的功能。/* \drivers\i2c\busses\i2c-v12-jz.c */static const struct i2c_a原创 2020-06-24 16:19:16 · 262 阅读 · 0 评论 -
linux下I2c框架分析之终端驱动(四)
linux下I2c框架之终端设备(三)平台:君正x1000内核:Linux3.5终于到了要看看驱动是怎么注册进内核的了。i2c驱动注册很简单,一个宏就能搞定,我是以ov7725为例入手分析的,首先要实现一个struct i2c_driver对象static struct i2c_driver ov772x_i2c_driver = { .driver = { .name = "ov7725", }, .probe = ov772x_probe, .remove = ov772原创 2020-06-24 11:59:58 · 279 阅读 · 0 评论 -
linux下I2c框架分析之终端设备(三)
linux下I2c框架之终端设备(三)平台:君正x1000内核:Linux3.5经过前面两篇文章已经知道了i2c框架的大概结构和适配器注册,现在分析i2c终端设备的驱动,作为普通的驱动工程师,一般都是拿着已有的驱动修改适配产品的sensor,这就是修改的终端驱动了,对咱们也是很重要。此时要关注一个关键的已经实例化的结构I2c总线i2c终端设备和驱动都挂载在它下面,match不断扫描device和driver两个链表进行匹配,在 /sys/bus/能看到这个i2cstruct bus_type原创 2020-06-23 20:30:59 · 254 阅读 · 0 评论 -
linux下I2c框架分析之适配器(二)
linux下I2c框架分析之适配器(二)平台:君正x1000内核:Linux3.5i2c适配器做为平台的控制设备自然要注册到platform总线下,x1000平台使用的是命名为jz-i2c的适配器。直接看代码适配器设备注册 /* \arch\mips\xburst\soc-x1000\common\platform.c */#if defined(CONFIG_I2C_V12_JZ)static u64 jz_i2c_dmamask = ~(u32)0;#define DEF_I2C原创 2020-06-23 19:47:18 · 483 阅读 · 0 评论 -
linux下i2c框架分析之初识(一)
**linux下i2c框架分析之初始(一)**最近想研究一下嵌入式camera,其sensor使用的是i2c通信协议,就花了几周时间跟踪内核代码研究一下其原理。平台:君正x1000内核:Linux3.5参考:https://www.baidu.com/link?url=BwdPd0g_6fz55eDF00-5XUtBhJaM_5eUOIOSJ4D_y3lZMnFWy_mZhMwIS8sQPsbjdMJ_-FBj5ZDXuc6-OZLoT_&wd=&eqid=f17632ed00原创 2020-06-23 17:43:50 · 299 阅读 · 0 评论