原文:14、i2c子系统

由于之后的触摸屏驱动分析中使用到了GPIO子系统和i c子系统,因此在分析触摸屏驱动之前我准备把这两个子系统进行简单分析。 在读者学习本章以及后续i c相关章节之前,最好了解i c通信方式,可以参考:i c编程。 一 i c框架分析 和总线设备驱动模型类似,i c分为核心层 总线驱动层和设备驱动层。总线驱动层向核心层提供统一接口,设备驱动层实现底层设备操作。 核心层:drivers i c i ...

2019-06-14 20:57 0 743 推荐指数:

查看详情

linux内核I2C子系统学习(三)

写设备驱动: 四部曲: 构建i2c_driver 注册i2c_driver 构建i2c_client ( 第一种方法:注册字符设备驱动、第二种方法:通过板文件的i2c_board_info填充,然后注册) 注销i2c ...

Thu Dec 06 03:09:00 CST 2012 2 7436
I2C子系统之驱动SSD1306 OLED

理解I2C设备驱动框架,主要围绕四个结构体去分析就容易了。 struct i2c_algorithm:提供I2C协议的实现的操作,如:master_xfer实现数据收发的最基本方法。 struct i2c_adapter:每一个i2c_adapter都代表一个I2C物理接口,一个cpu ...

Sun Oct 23 23:05:00 CST 2016 0 2494
Linux i2c子系统(一) _动手写一个i2c设备驱动

i2c总线是一种十分常见的板级总线,本文以linux3.14.0为参考, 讨论Linux中的i2c驱动模型并利用这个模型写一个mpu6050的驱动, 最后在应用层将mpu6050中的原始数据读取出来 i2c子系统框架 下图就是我理解的i2c驱动框架示意图, 类似中断子系统, i2c子系统中 ...

Tue Mar 07 17:22:00 CST 2017 0 18954
linux内核I2C子系统学习(一)

这部分准备分几个部分进行分析总结 因为I2C的通信肯定至少要有2个芯片完成,所以它的驱动是由2大部分组成: 主芯片的i2c的驱动 从芯片的i2c的驱动 注:万一选的都不支持咋办???(惨了,只能2个芯片的驱动都得实现了,不过过程差不多 ...

Wed Dec 05 03:41:00 CST 2012 0 7096
linux内核I2C子系统学习(二)

下面具体分析如何写第一部分: 主控芯片的i2c驱动分为2个步骤: 写总线驱动: 选了个主控芯片,比如:S3C8900(自己瞎编的芯片) 在driver/i2c/busses ...

Thu Dec 06 03:06:00 CST 2012 0 3209
Linux i2c子系统(二) _通过i2c-dev.c访问设备的方法

另外一种驱动 应用层除了使用上述的使用i2c_driver接口来访问i2c设备,Linux内核还提供了一种简单粗暴的方式——直接通过虚拟i2c设备驱动的方式,即上一篇中的i2c-dev提供的方式,这种方式使用的i2c_client是随着open的操作临时创建的虚拟的client,即不是挂接 ...

Wed Mar 08 16:01:00 CST 2017 0 3114
Linux i2c子系统(四) _从i2c-s3c24xx.ci2c控制器驱动的编写

"./drivers/i2c/busses/i2c-s3c2410.c"是3.14.0内核中三星SoC的i2c控制器驱动程序, 本文试图通过对这个程序的分析, 剥离繁复的细节, 总结一套编写i2c主机控制器驱动的框架以及一个分析内核驱动的流程. 匹配之前 --1291--> ...

Thu Mar 09 17:28:00 CST 2017 0 1588
linux驱动之i2c子系统mpu6050设备驱动

以下是mpu6050简单的驱动实现,mpu6050是I2C接口的6轴传感器,可以作为字符设备注册到内核,本代码运行环境是3.4.2内核,4.3.2版本的编译链,12.04版本的Ubuntu,硬件环境是jz2440开发板; 按照之前分析的I2C驱动框架,mpu6050驱动主要是实现外设端 ...

Sun Sep 03 07:31:00 CST 2017 0 2058
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM