1/初始化 i2c core
postcore_initcall(i2c_init);
2/i2c adapter platform_device 注册
customize_machine
of_platform_populate
for_each_child_of_node
of_platform_bus_create
of_platform_device_create_pdata
3/控制器驱动注册 i2c 设备 i2c_device 注册(注册后i2c_device已经和i2c adapter 绑定)
控制器驱动 注册
_probe
i2c_add_numbered_adapter
__i2c_add_numbered_adapter
i2c_register_adapter
of_i2c_register_devices
of_i2c_register_device
i2c_new_device
4/i2c设备驱动注册
i2c_add_driver
i2c_register_driver
driver_register
i2c_master_send
i2c_transfer
__i2c_transfer
adap->algo->master_xfer
sprd_i2c_master_xfer
sprd_i2c_handle_msg
static const struct i2c_algorithm sprd_i2c_algo = {
.master_xfer = sprd_i2c_master_xfer,
.functionality = sprd_i2c_func,
};