Linux Driver I2C
win9zz
Life is brief, and then you die, you know?
展开
-
i2c驱动从注册到probe被调用
涉及到的结构体: struct i2c_driver { unsigned int class; /* Notifies the driver that a new bus has appeared or is about to be * removed. You should avoid using this, it will be removed in a * near fut原创 2017-04-06 22:36:37 · 2728 阅读 · 0 评论 -
SMBus i2c
SMBus I2C 最大传输速度 100kHz 最大传输速度400kHz 最小传输速度 10kHz 无最小传输速度 35ms时钟低超时 无时钟超时 固定的逻辑电平 逻辑电平由VDD决定 不同的地址类型(保留、动态等) 7位、 10位和广播呼叫从地址类型 不同的总线协议(快速命令、 处理呼叫等) 无总线协议 SMBu原创 2017-04-01 00:42:28 · 2641 阅读 · 1 评论 -
如何实例化一个i2c设备(struct i2c_client)
之前写的i2c驱动程序对应的linux-2.6的内核,在移植到linux-3.4时,发现好多API不一样了。让我们打开/linux-3.4.2/Documentation/i2c/instantiating-devices,一探究竟。不像PCI或USB设备,I2C设备不在硬件级枚举。相反,软件必须知道连接在每个I2C总线段的设备,以及这些设备正在使用什么地址。因为这个原因,内核代码必须显式地实例化...原创 2017-04-03 22:43:41 · 6635 阅读 · 0 评论 -
int i2c_probe()
1.i2c驱动涉及到的数据结构: struct i2c_adapter { struct module *owner; unsigned int id; unsigned int class; // 适配器支持的类型,如传感器,eeprom等 const struct i2c_algor原创 2017-03-29 23:58:57 · 2923 阅读 · 0 评论 -
i2c-tools
i2c-tools-3.0.1:http://download.csdn.net/download/gaoqiv0447/2559447 i2c-tools-3.1.1:https://download.csdn.net/download/qq_33160790/10273541 官方下载地址:https://www.kernel.org/pub/software/utils/i2c-tool...原创 2018-03-07 18:10:08 · 2324 阅读 · 0 评论 -
oled ssd1306 for jz2440(linux i2c driver)
开发板:JZ2440 v2 内核:3.4.2 编译器: arm-linux-gcc 4.3.2 0.96寸OLED显示屏12864液晶屏模块IIC接口 12864模块是这样的。 oled的地址应该是0x3c,用i2c-tools可以探测到。(之前被误导了) 时序图: 驱动编写: 驱动移植自stm32的程序,覆写其中的WriteCmd和Wri...原创 2018-03-07 21:17:56 · 3639 阅读 · 1 评论 -
tiny4412 设备树之i2c设备(二)
开发板:tiny4412(1611)内核:linux4.4编译器: arm-none-linux-gnueabi-gcc (gcc version 4.8.3 20140320)mma7660连接的是i2c3和xeint25。在以前的内核中(arch/arm/mach-exynos/mach-tiny4412.c)中,是这样初始化i2c控制器及设备的static struct s3c2410_pl...原创 2017-09-03 16:39:22 · 4241 阅读 · 7 评论 -
Linux I2C体系结构
I2C总线式Philips公司开发的两线式串行总线,两个信号为数据线和时钟线。 主要涉及的文件: kernel/driver/i2c/下 algos/ busses/ i2c-core.c I2C框架主要思想就是主机和外设分离的思想: I2C体系结构分三个组成部分: (1)I2C核心 ...原创 2018-03-03 16:20:40 · 1746 阅读 · 0 评论