
linux i2c
sadamoo
这个作者很懒,什么都没留下…
展开
-
实例解析linux内核I2C体系结构(1)
作者:刘洪涛,华清远见嵌入式学院讲师。一、概述谈到在linux系统下编写I2C驱动,目前主要有两种方式,一种是把I2C设备当作一个普通的字符设备来处理,另一种是利用linux I2C驱动体系结构来完成。下面比较下这两种驱动。第一种方法的好处(对应第二种方法的劣势)有: ● 思路比较直接,不需要花时间去了解linux内核中复杂的I2C子系统的操作方法。转载 2012-09-11 16:28:47 · 676 阅读 · 0 评论 -
Linux设备驱动子系统第一弹 - I2C
1. Overview2. Data Structure3. Adapter4. I2C-core5. Slave Device 1. Overview 1.1 Definition I2C Inter-Integrated Circuit SMBUS System Management Bus, the I2C subse转载 2012-11-06 16:03:14 · 486 阅读 · 0 评论 -
i2c驱动之设备模型建立
一:设备模型建立流程图 二:重要函数分析(1)新适配器加入内核: int i2c_add_numbered_adapter(struct i2c_adapter *adap){ int id; int status; if (adap->nr & ~MAX_ID_MASK) return -EINVAL;re转载 2012-11-05 15:46:40 · 646 阅读 · 0 评论 -
new style I2C设备驱动分析,probe,struct i2c_device_id
本文来自:http://hi.baidu.com/fcni_cn/item/561f6f3f0c391abc124b146a最近看了韦东山驱动视频的i2c部分,总结出相关知识,分享给大家 .在内核中有两种方式的i2c设备驱动的编写方法,一种legacy方式,一种是newstyle方式。韦东山视频和宋宝华书籍里讲解的都是legacy方式,但是在新版本内核中,legacy方式转载 2012-11-05 14:38:41 · 573 阅读 · 0 评论 -
i2c驱动调试经验
把一个i2c驱动从2.6.21升级到2.6.39 上网查到一篇帖子,讲了驱动分为i2c总线,i2c设备,总线驱动做实际的总线读写操作,设备驱动实现针对不同设备操作。先找一篇帖子看看整体架构,再看代码,理解效果不错,这招是跟老猫学的。又查到一篇帖子,讲了从老版本i2c驱动,升级到新版本,需要做哪些变更,是翻译的内核文档。 照做,但是i2c设备驱动的probe转载 2012-11-02 16:20:13 · 644 阅读 · 0 评论 -
我对linux理解之i2c 二
我们下面开始分析i2c的通信,即读写过程。我们先看读函数,对应i2c core中的i2c_master_recv:int i2c_master_recv(struct i2c_client *client, char *buf ,int count){ struct i2c_adapter *adap=client->adapter;//通过client访问adapter转载 2012-09-11 17:26:36 · 8288 阅读 · 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 = { .转载 2012-09-11 17:25:17 · 2397 阅读 · 0 评论 -
深入源代码设计i2c驱动@linux2.6.32.2
不管怎样,先列出在linux2.6.32.2下最简短的i2c程序,因为在跟踪内核代码的过程中你会关注到它。一、最简驱动/* at24c08.c */#include #include #include static int at24c08_probe(struct i2c_client *client, const struct i2c_de转载 2012-09-11 17:07:07 · 1135 阅读 · 0 评论 -
i2c驱动之难点释疑
一、关于匹配i2c_client->dev和i2c_driver->driver的总线类型都是i2c_bus_type。 i2c_adapter->dev的总线类型并不是i2c_bus_type。在注册后设备与驱动匹配,是i2c_client->dev和i2c_driver->driver的匹配。i2c_client的建立都是依赖于 "new style" driversi2c_d转载 2012-09-11 16:39:24 · 802 阅读 · 0 评论 -
Linux设备驱动之I2C架构分析
一:前言 I2c是philips提出的外设总线。I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL.正因为这样,它方便了工程人员的布线。另外,I2C是一种多主机控制总线。它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须由主机发起才可以。而I2C是基于multi master机制。一同总线上可允许多个master.关于I2C协议的知识,这里不再赘述转载 2012-09-11 16:35:30 · 625 阅读 · 0 评论 -
实例解析linux内核I2C体系结构(2)
作者:刘洪涛,华清远见嵌入式学院讲师。四、在内核里写i2c设备驱动的两种方式前文介绍了利用/dev/i2c-0在应用层完成对i2c设备的操作,但很多时候我们还是习惯为i2c设备在内核层编写驱动程序。目前内核支持两种编写i2c驱动程序的方式。下面分别介绍这两种方式的实现。这里分别称这两种方式为“Adapter方式(LEGACY)”和“Probe方式(new style)”。(转载 2012-09-11 16:29:20 · 663 阅读 · 0 评论 -
设备驱动外传 - 虚拟总线和platform device
1. 总论2. 系统初始化 platform device3. 驱动程序使用 platform device 1. 总论Linux-2.6.11引入了设备模型的概念,将大部分设备驱动挂载到虚拟总线上。其目的在于:1) 提供友好的用户接口,用户可以在sys/bus/platform/下找到相应的驱动和设备。2) 更有利于电源管理。 2转载 2012-11-06 16:03:54 · 520 阅读 · 0 评论