这部分准备分几个部分进行分析总结因为I2C的通信肯定至少要有2个芯片完成,所以它的驱动是由2大部分组成:主芯片的i2c的驱动从芯片的i2c的驱动    注:万一选的都不支持咋办???(惨了,只能2个芯片的驱动都得实现了,不过过程差不多)(一).主芯片的I2C的驱动:(具体如何实现在后面在具体讲解) 首先要查看linux内核是否支持主芯片中i2c驱动
转载 2023-07-02 21:41:39
111阅读
目录 i2c_adapter、i2c_client等结构体分析 结构体之间的包含关系 i2c_adapter结构体 i2c_client结构体 I2C系统调用过程 整体调用过程 调用过程路径1 调用过程路径2I2C底层框架 底层调用流程例1 ​底层调用流程例2 底层调用流程例3 用到mux时的流程 驱动程序使用流程 mux驱动流程 ak4954操作流程 ...
原创 2022-03-09 14:52:14
849阅读
然后,主设备释放SDA线,等待从设备的应答信号(ACK)。i2c总线包括i2c
原创 2023-07-22 07:58:11
213阅读
I2C 子系统I2C 子系统使用的概率非常大,我之前有做过手机的经验, 手机跑的安卓系统,内核是Linux,手机的很多器件都是用I2C通信的,我经历过从板级设备到dts设...
原创 2021-07-28 16:20:42
1288阅读
代码中,我添加了很多注释,应该不难理解,有错误大家可以指出来,我再改正 #include <linux/kernel.h> #include <linux/module.h> #include <linux/slab.h> #include <linux/cdev.h> #include <linux/i2c.h> #includ
原创 2013-10-19 17:18:55
383阅读
代码中,我添加了很多注释,应该不难理解,有错误大家可以指出来,我再改正 #include <linux/kernel.h> #include <linux/module.h> #include <linux/slab.h> #include <linux/cdev.h> #include <linux/i2c.h> #includ
原创 2013-10-19 17:19:04
401阅读
代码中,我添加了很多注释,应该不难理解,有错误大家可以指出来,我再改正 #include <linux/kernel.h> #include <linux/module.h> #include <linux/slab.h> #include <linux/cdev.h> #include <linux/i2c.h> #includ
原创 2013-10-19 17:19:08
462阅读
代码中,我添加了很多注释,应该不难理解,有错误大家可以指出来,我再改正 #include <linux/kernel.h> #include <linux/module.h> #include <linux/slab.h> #include <linux/cdev.h> #include <linux/i2c.h> #includ
原创 2013-10-19 17:19:14
1014阅读
代码中,我添加了很多注释,应该不难理解,有错误大家可以指出来,我再改正 #include <linux/kernel.h> #include <linux/module.h> #include <linux/slab.h> #include <linux/cdev.h> #include <linux/i2c.h> #includ
原创 2013-10-20 11:30:50
615阅读
I2C 子系统I2C 子系统使用的概率非常大,我之前有做过手机的经验, 手机跑的安卓系统,内核是Linux,手机的很多器件都是用I2C通信的,我经历过从板级设备到dts设...
原创 2022-03-11 10:05:32
609阅读
代码中,我添加了很多注释,应该不难理解,有错误大家可以指出来,我再改正 #include <linux/kernel.h> #include <linux/module.h> #include <linux/slab.h> #include <linux/cdev.h> #include <linux/i2c.h> #includ
原创 2013-10-20 10:21:03
914阅读
代码中,我添加了很多注释,应该不难理解,有错误大家可以指出来,我再改正 #include <linux/kernel.h> #include <linux/module.h> #include <linux/slab.h> #include <linux/cdev.h> #include <linux/i2c.h> #include &
原创 2013-10-20 11:31:40
1469阅读
代码中,我添加了很多注释,应该不难理解,有错误大家可以指出来,我再改正 #include <linux/kernel.h> #include <linux/module.h> #include <linux/slab.h> #include <linux/cdev.h> #include <linux/i2c.h> #includ
原创 2013-10-19 17:18:50
513阅读
代码中,我添加了很多注释,应该不难理解,有错误大家可以指出来,我再改正 #include <linux/kernel.h> #include <linux/module.h> #include <linux/slab.h> #include <linux/cdev.h> #include <linux/i2c.h> #includ
原创 2013-10-19 17:19:26
367阅读
大概也是前年了,一直没有把那个i2c子系统讲解完,这里偷个懒,把以前整
原创 2023-01-15 14:27:15
72阅读
I2c子系统在进公司来的时候就学习过了,可是那是还不是很熟悉linux中的i2c
原创 2023-01-15 14:31:25
102阅读
ifeq ($(KERNELRELEASE),) KERNELDIR ?= /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) TEST = test modules: $(MAKE) -C $(KERNELDIR) M=$(PWD) clean: rm -rvf *.ko *.o *.mod.c Module* mod
原创 2013-10-21 20:23:13
821阅读
写设备驱动: 四部曲: 构建i2c_driver 注册i2c_driver 构建i2c_client ( 第一种方法:注册字符设备驱动、第二种方法:通过板文件的i2c_board_info填充,然后注册) 注销i2c_driver 具体如下: ● 构建i2c_driver static struct
转载 2017-06-21 08:58:00
338阅读
2评论
I2C核心维护了i2c_bus结构体,提供了和的注册、注销方法,维护了I2C总线的驱动、设备链表,实现了设备、驱动的匹配探测。此部分ng、高通。
原创 2023-09-07 17:40:00
131阅读
1.1 I2C总线知识 1.1.1  I2C总线物理拓扑结构      I2C总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。通信原理是通过对SCL和SDA线高低电平时序的控制,来产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态时,这两根线一般被上面所接的上拉电阻拉高,保持着
转载 2023-05-05 15:07:05
550阅读
  • 1
  • 2
  • 3
  • 4
  • 5