Linux驱动子系统之I2C(6)

来源:互联网 发布:刀剑神域源码记录下载 编辑:程序博客网 时间:2024/05/01 01:25

6 总结

下图根据之前的分析丰富的架构图


Tips:I2C适配器驱动不一定是基于platform实现,这里是以s3c-i2c为例。

 

I2c_driver、i2c_client与i2c_adapter

I2c_driver与i2c_client是一对多的关系,一个i2c_driver上可以支持多个同等类型的i2c_client。调用i2c_add_driver函数将I2c_driver注册到I2C总线上,调用i2c_register_board_info函数将i2c_client注册到全局链表__i2c_board_list。当调用i2c_add_adapter注册适配器时,遍历__i2c_board_list链表,i2c_register_adapter()->i2c_scan_static_board_info()->i2c_new_device()会构建i2c_client结构。当调用i2c_add_driver时,会先注册i2c_driver到I2C总线上,然后调用I2C BUS注册的match函数进行匹配,如果匹配成功,则先调用I2C BUS中注册的probe函数,在调用i2c_driver中实现的probe函数,完成相应的工作。


*********如有错误,不吝赐教********


原文见:http://blog.csdn.net/paul_liao/article/details/7005376

0 0
原创粉丝点击