硬件拓扑:
一个soc可以支持多路i2c,一路i2c可以支持多个i2c device
经典的Linux设备驱动模型:device ,bus,driver.
device分控制器主设备和外部具体的从i2c设备.主设备i2c控制器用i2c_adapter抽象,从设备用i2c_client抽象.
i2c总线用i2c_bus抽象,其中总线有数据手法算法抽象i2c_algo,
同样,driver也分控制器驱动和从设备驱动,还有总线驱动.
控制器驱动可以分为框架framework层以及具体的master 驱动.
控制器framework框架层,又可以分为i2c_core,i2c_bus,i2c_algo,i2c_muxes