本人最近研究i2c子系统(刚从事MTK平台的linux驱动开发),知道在Probe方式下i2c_client的创建是通过 i2c_register_board_info()把设备信息添加到全局链表i2c_board_list当中;然后在调用i2c_register_adapter()中通过调用i2c_scan_static_board_info()来遍历该链表,分别完成i2c_client的创建,其中i2c_client结构体具体的填写是通过在i2c_scan_static_board_info()中调用i2c_new_device来完成的。
在MTK的代码中为什都没有关于board_info的定义和注册?(还是我没找到?)
没用过MTK的, 不过你说的是LINUX的设备框架(貌似可以这么叫吧),是为应用层开发人员设计的。 但这东西一套下来估计还是很占地方的, 所以MTK下应该给省了吧。 直接用两个GPIO口模拟I2C,代码量各方面都精简很多。