Linux USB subsystem --- register generic usb driver

原创 2012年03月26日 21:38:55

目的:对USB作深入学习,在此留下笔记。欢迎讨论。

[Linux 3.2] [driver/usb/core/driver.c]

函数:usb_register_device_driver


/**
 * usb_register_device_driver - register a USB device (not interface) driver
 * @new_udriver: USB operations for the device driver
 * @owner: module owner of this driver.
 *
 * Registers a USB device driver with the USB core.  The list of
 * unattached devices will be rescanned whenever a new driver is
 * added, allowing the new driver to attach to any recognized devices.
 * Returns a negative error code on failure and 0 on success.
 */
int usb_register_device_driver(struct usb_device_driver *new_udriver,
		struct module *owner)
{
	int retval = 0;

	if (usb_disabled())
		return -ENODEV;

	new_udriver->drvwrap.for_devices = 1;
	new_udriver->drvwrap.driver.name = (char *) new_udriver->name;
	new_udriver->drvwrap.driver.bus = &usb_bus_type;
	new_udriver->drvwrap.driver.probe = usb_probe_device;
	new_udriver->drvwrap.driver.remove = usb_unbind_device;
	new_udriver->drvwrap.driver.owner = owner;

	retval = driver_register(&new_udriver->drvwrap.driver);

	if (!retval) {
		pr_info("%s: registered new device driver %s\n",
			usbcore_name, new_udriver->name);
		usbfs_update_special();
	} else {
		printk(KERN_ERR "%s: error %d registering device "
			"	driver %s\n",
			usbcore_name, retval, new_udriver->name);
	}

	return retval;
}
EXPORT_SYMBOL_GPL(usb_register_device_driver);

此过程是注册一个usb的通用程驱动。驱动注册的过程与usbfs驱动注册类似。其结果是:在/sys/bus/usb/drivers/下面创建usb目录。在usb目录下面创建如下属性文件。

bind  uevent  unbind


至此,整个usb core的初始化过程完成。

后面将进入到USB host controller的初始化。

Linux USB Host 驱动开发入门

标签: usblinux内核源码host 2016-10-21 00:56 109人阅读 评论(0) 收藏 举报 本文章已收录于: 分类: Linux...
  • ASKLW
  • ASKLW
  • 2017年03月28日 09:54
  • 508

Linux设备驱动之USB hub驱动

Linux设备驱动之USB hub驱动 2012-07-24 14:06:49 分类: 原文地址:Linux设备驱动之USB hub驱动 作者:xgr180 ---...
  • cosmoslhf
  • cosmoslhf
  • 2013年12月12日 16:14
  • 2545

Linux下USB驱动详解(HOST)

转载地址:http://blog.chinaunix.net/uid-14518381-id-3904999.html USB驱动分为两块,一块是USB的bus驱动,这个东西,Linux内核...
  • feng85016578
  • feng85016578
  • 2016年10月13日 17:16
  • 2385

Linux USB 驱动开发(三)—— 编写USB 驱动程序

Linux的设备驱动都遵循一个惯例——表征驱动程序(用driver更贴切一些,应该称为驱动器比较好吧)的结构体,结构体里面应该包含了驱动程序所需要的所有资源。用术语来说,就是这个驱动器对象所拥有的属性...
  • zqixiao_09
  • zqixiao_09
  • 2016年03月26日 15:10
  • 11754

usb鼠标驱动注解及获取鼠标坐标

USB鼠标驱动 /drivers/hid/usbhid/usbmouse.c 下面我们分析下USB鼠标驱动,鼠标输入HID类型,其数据传输采用中断URB,鼠标端点类型为IN。好了,我们先看看这个...
  • a_tu_
  • a_tu_
  • 2015年03月26日 15:34
  • 1505

Linux USB驱动分析(一)----USB2.0协议分析

原文地址:http://blog.chinaunix.net/uid-25445243-id-4040449.html
  • u011208567
  • u011208567
  • 2014年09月23日 16:58
  • 1702

USB-serial驱动分析(usb转串口)

转自:http://blog.csdn.net/istone107/article/details/8123482  在linux 内核中,有一个叫 usbserial 的模块可用作 usb mode...
  • xmzzy2012
  • xmzzy2012
  • 2015年01月05日 17:33
  • 2289

Linux USB gadget设备驱动解析(4)--编写一个gadget驱动

分类: LINUX 作者:刘洪涛,华清远见嵌入式学院讲师。 一、编写计划 通过前面几节的基础,本节计划编写一个简单的gadget驱动。重在让大家快速了解gadget驱动结构。 ...
  • wujiangguizhen
  • wujiangguizhen
  • 2013年11月21日 17:02
  • 1766

添加网卡驱动和USB支持 以及一些问题的集中处理

之前内核移植时没有添加网卡驱动和USB支持,添加如下: 1.以太网卡驱动安装: 1.1第一步、修改内核代码 [luxibao@centos ~]$ cd fl2440 [luxibao@cen...
  • L_x_b
  • L_x_b
  • 2016年07月31日 17:09
  • 2718

Linux下USB驱动框架分析

http://www.cnblogs.com/general001/articles/2319552.html
  • brucexu1978
  • brucexu1978
  • 2013年12月26日 14:54
  • 4665
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux USB subsystem --- register generic usb driver
举报原因:
原因补充:

(最多只允许输入30个字)