码迷,mamicode.com
首页 > 系统相关 > 详细

linux如何发现和加载对应的USB设备驱动

时间:2019-12-24 10:12:00      阅读:471      评论:0      收藏:0      [点我收藏+]

标签:test   inux   ble   mod   流程   i2c   结构体   设备   end   

linux如何发现和加载对应的USB对应的设备驱动
1.整体流程
加载USB设备驱动-->注册USB设备(注册的USB设备结构体包含了USB设备的vender ID和product ID)
USB设备插入后,匹配到vendor ID和product ID,即调用改USB注册结构里的probe函数,开始和USB设备进行通信。
2.USB设备结构体
static struct usb_driver test_usb_driver={
.OWNER = THIS_MODULE,
.name = "test USB device",
.id_table = test_usb_table_id,
.probe = test_usb_probe,
.disconnect = test_usb_disconnect
};
3.USB设备table ID
static struct usb_device_id test_usb_table_id={
{USB_DEVICE(TEST_USB_VENDOR_ID,TEST_USB_PRODUCT_ID)};
{}
};

扩展:
usb设备table ID对应usb_device_id
i2c设备table ID对应i2c_device_id

usb设备的table id保存在USB设备内,在作为device从设备,插入host(主设备)后,host通过端口0从usb设备中读出来。
i2c设备则是定义在device tree里,kernel启动后,遍历device tree,加载对应的i2c设备驱动。

linux如何发现和加载对应的USB设备驱动

标签:test   inux   ble   mod   流程   i2c   结构体   设备   end   

原文地址:https://blog.51cto.com/wangyw/2461007

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!