Linux I2C驱动】的更多相关文章

  linux i2c驱动架构-dm368 i2c驱动分析   在阅读本文最好先熟悉一种i2c设备的驱动程序,并且浏览一下i2c-core.c以及芯片提供商的提供的i2c总线驱动(i2c-davinci.c).标题党请见谅! 其实i2c接口非常的简单,即使用51单片的gpio来模拟i2c,编写一个e2prom或者其他i2c接口的驱动程序,也不是什么难事,几百行代码就能搞定. 但是Linux的i2c驱动体系结构却有相当的复杂度,不管是叫linux i2c驱动还是单片机i2c驱动,其根本还是操作so…
前言 主要是想对Linux I2c驱动框架有一个整体的把控,因此会忽略协议上的某些细节,同时里面涉及到的一些驱动基础,比如平台驱动.设备模型.sysfs等也不进行详细说明原理,涉及到i2c协议部分也只会简单带过,因为linux内核里面已经实现了该协议,我们以后并不需要重新实现这些,只需要对协议有个简单的了解.如果有任何错误地方,请指出,谢谢! 注:图片来自互联网 内核版本:2.6.35.6 I2c介绍 I2C是"Inter Integrated Circuit Bus"的缩写,中文译成…
Linux I2C 驱动结构 i2c体系结构由三部分组成 i2C core i2c core提供了i2c 总线驱动 和 设备驱动的注册,注销方法 i2C and SMBus protocol 实现 i2C "bus" driver algorithm driver adapter driver i2c device driver chip drivers, 包括多种类型,如RTC, EEPROM, I/O expander, hardware monitoring, sound, vi…
本文转载自:http://blog.chinaunix.net/uid-21558711-id-3959287.html 分类: LINUX 原文地址:Linux I2C驱动分析(三)----i2c_dev驱动和应用层分析 作者:apple_guet 一.i2c-dev驱动分析 1.1.设备驱动注册 分析这个驱动,还是从module_init()和module_exit()开始,程序如下: 点击(此处)折叠或打开 static int __init i2c_dev_init(void) { in…
一:Linux i2c子系统简介: 1.Linux 的 I2C 体系结构分为 3 个组成部分: (1) I2C 核心. I2C 核心提供了 I2C 总线驱动和设备驱动的注册.注销方法,I2C 通信方法(即“algorithm”)上层的.与具体适配器无关的代码以及探测设备.检测设备地址的上层代码等. (2) I2C 总线驱动. I2C 总线驱动是对 I2C 硬件体系结构中适配器端的实现,适配器可由 CPU 控制,甚至可以直接集成在 CPU 内部. I2C 总线驱动主要包含了 I2C 适配器数据结构…
1. Linux内核支持I2C通用设备驱动(用户态驱动:由应用层实现对硬件的控制可以称之为用户态驱动),实现文件位于drivers/i2c/i2c-dev.c,设备文件为/dev/i2c-0 2. I2C通用设备驱动以字符设备注册进内核的 static const struct file_operations i2cdev_fops = { .owner = THIS_MODULE, .llseek = no_llseek, .read = i2cdev_read, .write = i2cde…
1. Linux I2C子系统架构 (1)I2C核心(I2C-Core):I2C 总线和I2C 设备驱动的中间枢纽,它提供了I2C 总线驱动和设备驱动的注册.注销方法等 (2)I2C控制器驱动(adapter):对控制器的驱动实现,控制器可在外部,也可以集成在CPU 内部. (3)I2C设备驱动:对I2C从设备的驱动实现,如AT24C02的驱动 (4)Linux I2C子系统提供了两种设备文件供应用层使用: ① 把I2C设备文件当做普通字符设备,通过读写文件来实现对从设备的读写(通过I2C-Co…
结合实际代码和书中描述,可能跟书上有一定出入.本文后续芯片相关代码参考ZYNQ. 15.1 总体结构 如下图,i2c驱动分为如下几个重要模块 核心层core,完成i2c总线.设备.驱动模型,对用户提供sys文件系统访问支持:为i2c内部adpter等提供注册接口. adpter,适配器,实际就是CPU集成的IIC控制器,有cpu控制,完成i2c物理总线操作,busses文件夹里,有各个cpu adapter的具体实现:algorithm集成到这个模块里,而且是adapter的一部分,主要实现总…
Linux的I2C体系结构分为3个组成部分: I2C核心(  i2c-core.c ): I2C核心提供了I2C总线驱动和设备驱动的注册.注销方法.I2C通信方法("algorithm").与具体适配器无关的代码.探测设备.检测设备地址的上层代码等. 给驱动编程人员提供编程接口. I2C总线驱动( i2c-s3c2410.c ): I2C总线驱动是对适配器端的实现( 即初始化i2c控制器 ). 实现操作方法,它知道怎么发数据,但是不知道该发什么数据. I2C设备驱动(  i2c-dev…