在linux3.6之下 如何利用设备树 使得开机自动加载usb设备的驱动?
各位前辈好, 我最近在思考这个问题: 如何利用linux的 设备树机制 使得一个已经插着的usb设备 开机便自动加载相同compatible字串的驱动而运行?
难道是行不通的吗? 因为..usb_driver 结构之中并没有 of_match_table , 只有一个 device_driver 结构 的 usbdrv_wrap...而经调试观察,usbdrv_wrap的 of_match_table 并未被填充
纵然使用了以下代码于usb设备对应的驱动中 依然无法匹配驱动时取得compatible :
static struct of_device_id xillybus_of_match[] __devinitdata = {
{ .compatible = "xlnx,xillybus-1.00.a", },
{}
};
何况, linux也似乎没有为dts中,usb总线节点之下的子结点创建设备
所以总结以上, 驱动对应的device_driver 结构, of_match_table为null 因此无法取得compatible字串
也无法使用 of_get_property() 取得 device的 compatible字串 ...
因此无法单纯的加上 of_driver_match_device() 来匹配设备与驱动
难道linux3.6的usb主控器驱动 不支援设备树这功能吗?
又或者是我的理解有误了呢?
支援热拔插的usb 与设备树的理念本来就不同 是这样吧