I2C (三) linux I2C

linux I2C

  • linux对i2c的解读
linux 对 i2c 做了很多工作,使得 硬件信息和驱动分离,i2c控制器和i2c设备分离.
    硬件信息 // 存在于设备树中
    	1.i2c控制器	硬件信息
    	2.i2c设备		 硬件信息
    驱动
    	1.i2c控制器 	驱动 drivers/i2c/buses中
    	2.i2c设备 	 驱动 driver/xxx 中
    
  • linux i2c 实现框架

I2C 框架
	1. I2C 外设
		1. dts // i2c device 的注册
		2. 驱动
			1. 代码位置
				可以在driver下的任何位置
	2. I2C core
		1. 对上对下提供接口
			1. 对上 i2c_add_driver , i2c_transfer  i2c_master_send i2c_master_recv
			3. 对下 i2c_register_adapter
		2. 代码位置
			drivers/i2c
				i2c-boardinfo.c
				i2c-core.c
				i2c-dev.c
				i2c-mux.c
	3. I2C 控制器 
		1. GPIO模拟I2C
		2. I2C 控制器
			1. dts // i2c 控制器 device 的注册 , // platform 设备
			2. 驱动
				1. of_i2c_register_devices
			3. 代码位置
				drivers/i2c/busses/i2c-xxx.c

  • linux 对 i2c 的匹配
linux i2c 是基于 总线设备驱动模型的.
    i2c adapter(i2c控制器)是 platfrom设备
    i2c adapter 的驱动 是 	platform 驱动
    i2c device(i2c设备)是 	 i2c设备
    i2c device 	的驱动 是 	i2c驱动
    一般系统中会有一个i2c adapter ,还有很多 i2c device
    
    这些东西会匹配
    	i2c adapter (i2c控制器) 和i2c adapter的驱动 会开始匹配,组成i2c adapter 的ops(带硬件信息)(A)
    	i2c device 和 i2c device 驱动匹配,组成 i2c device 的ops(带硬件信息)(B)
    	
    	然后 A 和 B 匹配,形成 利用 i2c adapter 来操作 i2c device 的ops (带硬件信息) 
    	

BBD

  • 下图为 linux那些事儿之我是USB 第2篇25章
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值