android usb 分析笔记

virtual device: android_usb

首先来看 drivers/usb/gadget/android.c。

init() 创建了虚拟设备   /sys/devices/virtual/android_usb/.

static int __init init(void)
{
	struct android_dev *dev;
	int err;

	android_class = class_create(THIS_MODULE, "android_usb");
	if (IS_ERR(android_class))
		return PTR_ERR(android_class);

}

其中,指定了 Google usb 的缺省信息:

static const char longname[] = "Gadget Android";

/* Default vendor and product IDs, overridden by userspace */
#define VENDOR_ID		0x18D1
#define PRODUCT_ID		0x0001

定义了一个非常重要的 android_usb_function 数据结构。

struct android_usb_function {
	char *name;
	void *config;

	struct device *dev;
	char *dev_name;
	struct device_attribute **attributes;

	/* for android_dev.enabled_functions */
	struct list_head enable

你可能感兴趣的:(USB,android,USB)