linux内核的I2C子系统详解3——i2c-core.c初步分析、I2C总线的匹配机制
来源:互联网 发布:mac可以用bluestacks 编辑:程序博客网 时间:2024/06/06 01:57
以下内容源于朱有鹏《物联网大讲堂》课程的学习,如有侵权,请告知删除。
5、i2c-core.c初步分析
(1)smbus代码略过:smbus是基于I2C总线发展出来的。(2)模块加载和卸载
- 关键是bus_register(&i2c_bus_type),从中可以知道匹配机制;
6、I2C总线的匹配机制
(1)match函数
(2)probe函数
(3)总结
- I2C总线上有2条分支:i2c_client链和i2c_driver链;
- 当任何一个driver或者client去注册时,I2C总线都会调用match函数去对client.name和driver.id_table.name进行循环匹配。
- 如果driver.id_table中所有的id都匹配不上则说明client并没有找到一个对应的driver;
- 如果匹配上了则标明client和driver是适用的,那么I2C总线会调用自身的probe函数,自身的probe函数又会调用driver中提供的probe函数,driver中的probe函数会对设备进行硬件初始化和后续工作。
7、核心层开放给其他部分的注册接口
(1)i2c_add_adapter/i2c_add_numbered_adapter:注册adapter的,比如i2c-s3c2410.c中就使用此函数来注册一个adapter。(2)i2c_add_driver:注册driver的
(3)i2c_new_device:注册client的
阅读全文
0 0
- linux内核的I2C子系统详解3——i2c-core.c初步分析、I2C总线的匹配机制
- linux内核的I2C子系统详解1——I2C总线概览、驱动框架概览
- linux内核的I2C子系统详解4——i2c-s3c2410.c文件中的adapter、algorithm
- Linux I2C子系统分析-I2C总线驱动
- Linux I2C子系统分析-I2C总线驱动
- Linux I2C子系统分析-I2C总线驱动
- Linux I2C子系统分析-I2C总线驱动
- Linux I2C子系统分析-I2C总线驱动&&Linux I2C子系统分析-I2C设备驱动
- Linux内核I2C子系统详解
- Linux I2C子系统分析-I2C总线驱动 1
- linux内核的I2C子系统详解5——i2c_driver的注册、i2c_client的来源
- 内核I2C子系统详解
- linux内核的I2C子系统详解2——关键结构体、关键文件
- I2C总线的仲裁机制
- I2C总线的仲裁机制
- I2C总线的仲裁机制
- I2C总线的仲裁机制
- I2C的总线仲裁机制
- 左旋
- Shiro之加密方式-yellowcong
- HDFS简介
- python 笔记 12月17日
- 剑指offer 编程题(12):数组奇偶
- linux内核的I2C子系统详解3——i2c-core.c初步分析、I2C总线的匹配机制
- c++ 11 常用语法
- MySQL的count函数的多种用法
- netty源码分析(二十三)ReplayingDecoder源码分析与特性解读以及其他编解码器介绍
- Java 8 实战学习笔记
- 把本地项目同步到gitlab
- ubuntu githib 上传项目
- Android中更换头像功能
- 景格虚拟教具混合动力汽车动力系统虚拟结构原理展示台