Linux USB OTG 框架与虚拟文件系统详解
1. OTG 框架示例
USB 控制器可能有不同的配置,收发器部分要么内置在控制器中,要么通过外部胶合逻辑接口连接。因此,OTG 框架驱动很大程度上取决于收发器与数字控制器的接口方式。这里以 isp1301 为例,它位于 drivers/usb/otg/isp1301_omap 中,通过 I2C 接口与控制器相连。
1.1 定义收发器驱动
首先要为胶合硬件与内核定义所需的收发器驱动。因为 isp1301 OTG 控制器使用 I2C 接口,所以声明一个基于 struct i2c_driver 的对象,如 isp1301_driver ,并在 isp_init 中使用 i2c_add_driver 进行注册。
static const struct i2c_device_id isp1301_id[] = {
{ "isp1301_omap", 0 },
{ }
};
MODULE_DEVICE_TABLE(i2c, isp1301_id);
static struct i2c_driver isp1301_driver = {
.driver = {
.name = "isp1301_omap",
},
.probe = isp1301_probe,
.remove = __exit_p(isp1301_remove),
.id_table =
超级会员免费看
订阅专栏 解锁全文
2314

被折叠的 条评论
为什么被折叠?



