linux内核的I2C子系统详解4——i2c-s3c2410.c文件中的adapter、algorithm
以下内容源于朱有鹏《物联网大讲堂》课程的学习,如有侵权,请告知删除。
主要分析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接口支持哪些特性。