i2c_add_driver函数用法
http://wuyidaxuezhb.blog.163.com/blog/static/185337391201211133547701/
http://www.cnblogs.com/armlinux/archive/2011/04/30/2390827.html
i2c_driver
http://www.cnblogs.com/cute/archive/2011/08/30/2159326.html
问题:
http://topic.youkuaiyun.com/u/20101012/23/e9fcd067-f4b0-4b1d-a219-2bd7479fec7d.html
i2c_device_id
struct i2c_device_id *id_table; 如果驱动可以支持好几个设备,那么这里面就要包含这些设备的ID
MODULE_DEVICE_TABLE (usb, skel_table); MODULE_DEVICE_TABLE (pci, skel_table); MODULE_DEVICE_TABLE (i2c, i2c_driver.id_table); MODULE_DEVICE_TABLE的第一个参数是设备的类型,如果是USB设备,那自然是usb(如果是PCI设备,那将是pci,这两个子系统用同一个宏来注册所支持的设备)。后面一个参数是设备表,这个设备表的最后一个元素是空的,用于标识结束。例:假如代码定义了USB_SKEL_VENDOR_ID是 0xfff0,USB_SKEL_PRODUCT_ID是0xfff0,也就是说,当有一个设备接到集线器时,usb子系统就会检查这个设备的 vendor ID和product ID,如果他们的值是0xfff0时,那么子系统就会调用这个模块作为设备的驱动。 |