Android USB gadget probe流程

本文详细探讨了Android系统中USB gadget设备的probe过程,通过对代码的跟踪分析,揭示了USB gadget在Android设备上的初始化和连接流程,为理解和开发相关应用提供了关键洞见。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

static struct android_usb_platform_data android_usb_pdata = {
	.vendor_id		= S3C_VENDOR_ID,   //18d1
	.product_id		= S3C_UMS_PRODUCT_ID,   //4e21
	.manufacturer_name	= "SAMSUNG",
	.product_name		= "S5P OTG-USB",
	.serial_number		= device_serial,    //0123456789ABCDEF
	.num_products		= ARRAY_SIZE(usb_products),
	.products		= usb_products,
	.num_functions		= ARRAY_SIZE(usb_functions_all),
	.functions		= usb_functions_all,
};



static struct platform_driver android_platform_driver = {
	.driver = { .name = "android_usb", },
	.probe = android_probe,
};


struct platform_device s3c_device_android_usb = {
	.name	= "android_usb",
	.id	= -1,
	.dev	= {
		.platform_data	= &android_usb_pdata,
	},
};

static struct usb_composite_driver android_usb_driver = {
	.name		= "android_usb",
	.dev		= &device_desc,
	.strings	= dev_strings,
	.bind		= android_bind,
	.enable_function = android_enable_function,
};

static struct usb_gadget_driver composite_driver = {
	.speed		= USB_SPEED_HIGH,

	.bind		= composite_bind,
	.unbind		= composite_unbind,

	.setup		= composite_setup,
	.disconnect	= composite_disconnect,

	.suspend	= composite_suspend,
	.resume		= composite_resume,

	.driver	= {
		.owner		= THIS_MODULE,
	},
};


android_probe
  usb_composite_register(&android_usb_driver);
    usb_gadget_register_driver(&composite_driver);
	  driver->bind
		composite_bind
		  composite->bind (gadget composite.c)
			android_bind
			  usb_add_config
				android_bind_config
				  bind_functions (gadget android.c)
					mass_storage_bind_config



之前android项目上看usb gadget 的probe代码的流程追踪.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值