linux内核的I2C子系统详解4——i2c-s3c2410.c文件中的adapter、algorithm
2017-12-17 19:34
302 查看
以下内容源于朱有鹏《物联网大讲堂》课程的学习,如有侵权,请告知删除。
主要分析i2c-s3c2410.c文件。
因为I2C控制器属于内部外设。
(2)找到driver和device,并且确认其配对过程(在platform.c中由匹配函数来匹配);
![](https://img-blog.csdn.net/20171217185434606?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvb3FxSHVUdTEyMzQ1Njc4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20171217185744601?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvb3FxSHVUdTEyMzQ1Njc4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20171217185752973?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvb3FxSHVUdTEyMzQ1Njc4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
(3)probe函数
(2)从platform_device接收硬件信息,做必要的处理(request_mem_region & ioremap、request_irq等);
(3)对硬件做初始化(直接操作210内部I2C控制器的寄存器)
![](https://img-blog.csdn.net/20171217191826448?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvb3FxSHVUdTEyMzQ1Njc4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
(2)s3c24xx_i2c_doxfer
信息传输函数
![](https://img-blog.csdn.net/20171217192138903?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvb3FxSHVUdTEyMzQ1N<br/>4000<br/>jc4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20171217192745886?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvb3FxSHVUdTEyMzQ1Njc4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
(3)functionality:表明I2C接口支持哪些特性。
主要分析i2c-s3c2410.c文件。
8、adapter模块的注册
(1)平台总线方式注册因为I2C控制器属于内部外设。
(2)找到driver和device,并且确认其配对过程(在platform.c中由匹配函数来匹配);
(3)probe函数
9、probe函数分析
(1)填充一个i2c_adapter结构体,并且调用接口去注册之;(2)从platform_device接收硬件信息,做必要的处理(request_mem_region & ioremap、request_irq等);
(3)对硬件做初始化(直接操作210内部I2C控制器的寄存器)
10、i2c_algorithm
(1)probe函数中有代码:i2c->adap.algo = &s3c24xx_i2c_algorithm;(2)s3c24xx_i2c_doxfer
信息传输函数
(3)functionality:表明I2C接口支持哪些特性。
相关文章推荐
- linux内核的I2C子系统详解3——i2c-core.c初步分析、I2C总线的匹配机制
- Linux内核I2C子系统详解
- 嵌入式Linux内核I2C子系统详解
- 嵌入式Linux内核I2C子系统详解
- I2C子系统详解
- linux内核I2C子系统学习(一)
- Linux内核I2C子系统驱动(三)
- 嵌入式Linux内核I2C子系统详解
- 嵌入式Linux内核I2C子系统详解
- 编译linux内核生成的system.map文件详解
- linux内核I2C驱动子系统分析(一)
- I2C子系统之 adapter driver注册——I2C_dev_init()
- i2c子系统之platform_driver初始化——i2c_adap_s3c_init()
- i2c子系统之adapter device和client device注册——i2c_add_number_adapter()
- linux内核I2C子系统学习(三)
- linux内核I2C子系统学习
- 嵌入式Linux内核I2C子系统详解
- Linux内核的文件预读详细详解
- linux内核I2C驱动子系统分析(二)
- linux i2c子系统代码分析3 ---操作函数i2c_add_adapter i2c_add_numbered_adapter介绍