I2C
sir_zeng
这个作者很懒,什么都没留下…
展开
-
/sys/bus/i2c/devices下的内容与i2c_board_info结构体
在目录/sys/bus/i2c/devices下能发现系统中的I2C设备,如下:[cpp] view plaincopyprint?# ls 0-0034 0-0030 0-0011 0-0058 # ls0-00340-00300-00110-0058这些设备就是系统中存在的设备。这些设备是怎么来的?在你对应的转载 2012-11-12 15:24:43 · 1434 阅读 · 0 评论 -
Linux 驱动i2c -- Gsenser(一)
看linux平台的驱动程序,一切都从那对欢喜冤家开始。 且看代码:323 module_init(lis3lv02d_i2c_init);324 module_exit(lis3lv02d_i2c_exit);了解与不了解linux设备驱动模型的弟兄们都知道,这两行的意思,就不多说了。根据前面代码的指示前去阅读lis3lv02d_i2c_init函数。306转载 2013-01-06 11:41:51 · 907 阅读 · 0 评论 -
Linux i2c设备的驱动程序
目录(?)[+]预备知识linux设备驱动到底复杂在什么地方linux驱动中 i2c驱动架构架构层次分类具体分析i2c_driveri2c_clienti2c_adapteri2c_algorithm梳理图ov2715设备i2c驱动源码分析目录(?)[-]预备知识linux设备驱动到底复杂在什么地方?linux驱动中 i2c驱动架构架构层次分类具体分转载 2013-01-06 11:21:10 · 749 阅读 · 0 评论 -
手把手教你写Linux I2C设备驱动
转自:http://ticktick.blog.51cto.com/823160/760020 Linux I2C驱动是嵌入式Linux驱动开发人员经常需要编写的一种驱动,因为凡是系统中使用到的I2C设备,几乎都需要编写相应的I2C驱动去配置和控制它,例如 RTC实时时钟芯片、音视频采集芯片、音视频输出芯片、EEROM芯片、AD/DA转换芯片等等。 Linux I2C驱动涉转载 2013-01-06 10:32:36 · 771 阅读 · 0 评论 -
Linux 驱动i2c -- Gsenser(二)
对linux驱动模型有一点了解的兄弟知道,一个驱动,特别是挂上总线的驱动,真正开始执行都是始于probe函数。我们这里的lis3lv02d_i2c驱动,是挂在系统的i2c总线上的,因而也就会从probe开始执行。那么是谁来调用这个probe内?就好像驱动通过总线介绍,嫁给了设备,那到底是哪个设备去掀起驱动的红盖头呢?我们从i2c_register_driver看开去。代码在kern转载 2013-01-06 11:46:29 · 883 阅读 · 0 评论 -
Linux 驱动i2c -- Gsenser(三)
client这个变量之前在i2c-core中看到过很多次了,也不再藏着掖着了,这里就解释一下他的来历。这个来历真是曲折离奇,记得刚开始找这个client的时候,用source insight3来一层层找func的caller,因为有的函数有多个caller,不得不多次回溯,终于,在花了将近一天时间,经过无数次的回溯后,我找到了client的前世今生,理清了他的来龙去脉。clie转载 2013-01-06 11:47:32 · 637 阅读 · 0 评论 -
我对linux理解之i2c
i2c设备是非常普遍的一种设备,我们现在开始i2c子系统的分析。我们先从注册开始:static const struct i2c_device_id IT7260_ts_id[] = { { IT7260_I2C_NAME, 0 }, { } };static struct i2c_driver IT7260_ts_driver = {转载 2013-01-04 18:10:48 · 469 阅读 · 0 评论 -
i2c驱动调试经验
把一个i2c驱动从2.6.21升级到2.6.39上网查到一篇帖子,讲了驱动分为i2c总线,i2c设备,总线驱动做实际的总线读写操作,设备驱动实现针对不同设备操作。先找一篇帖子看看整体架构,再看代码,理解效果不错,这招是跟老猫学的。又查到一篇帖子,讲了从老版本i2c驱动,升级到新版本,需要做哪些变更,是翻译的内核文档。照做,但是i2c设备驱动的probe函数调转载 2013-01-04 17:56:03 · 605 阅读 · 0 评论 -
Linux I2C Input设备驱动代码的几点理解
最近在做一个I2C键盘的Linux驱动,参考了其他芯片的一些代码,其中陆续发现有些让人迷惑的东西,把我的迷惑及理解在这里加以记录:1. i2c_driver结构体的probe成员的原型: [cpp] view plaincopyprint?int (*probe)(struct i2c_client *,const struct i2c_device转载 2012-11-12 15:29:43 · 646 阅读 · 0 评论 -
linux平台上GPIO模拟I2C
GPIO模拟I2C是嵌入式中较为常用的一种应用。各个地方有各种不同的做法,按照我自己的个人理解,最好是把I2C的各种状态分割开来,比如起始条件终止条件,读数据和写数据,然后根据具体的使用场合组合起来。 这里需要注意两点:一是SCL的波形并不规律,不能将它理解为方波,它本身只是一段段独立的波形。二是每段操作时,之前和之后的SCL和SDA波形是可以忽略的;通常情况下I2C开始之前和I2C转载 2013-02-01 10:38:02 · 834 阅读 · 0 评论