Linux下i2c驱动的加载过程,分为i2c设备层、i2c adapter层与i2c核心层。
I2C设备驱动层也就是我们为特定i2c设备写的驱动。下面是i2c驱动的注册过程。
1:在我们写的i2c设备驱动中,我们会调用i2c_add_driver()开始i2c设备驱动的注册,该函数调用i2c_register_driver()完成所有注册操作。
2:i2c_register_driver会调用driver_register()来将设备驱动添加到总线的设备驱动列链中。
3:在driver_register()中,通过driver_find()来判断驱动是否已经注册,然后会调用bus_add_driver()将设备驱动添加到总线上。