最近在学习i2c设备驱动程序,在注册驱动的时候需要对注册的设备进行匹配,如果匹配成功,则跳到驱动定义的probe函数处;
后来,查了一下,i2c设备是通过i2c_register_board_info函数将其放在一个链表里,在总线初始化的时候对这些设备进行注册;
在这里不明白的是,没有看到设备与adaper(适配器)的联系,这个是怎么联系在一起的,而且,在内核里,注册了很多adaper,我们的设备到底怎样区分是与那个适配器相连?我看了一下i2c_register_board_info函数,有一个参数表示总线号,是不是这个总线号就对应一个adaper?I2C设备文件是在什么时候产生的?
在驱动程序里面,有时候还会注册一个杂项设备,通过misc_register()函数,这有什么作用呀?
还有,在看别人写的驱动时,有这样两条语句,client->driver = &i2c_ts_driver; i2c_set_clientdata( client, ts );i2c设备已经注册完成了,不明白这两条指令的意思?
本人菜鸟一个,请各位大虾指点一下?