linux usb ga驱动详解,Linux设备驱动子系统 - USB Gadget

1. 前言

2. 源码架构

3. 枚举过程

1. 前言

Gadget,小饰品。USB Gadget,就是指所开发的电子设备以USB从设备的模式通过USB连接到主机。比如手机用USB线插入PC后,手机就是USB Gadget。本文以Mavell为例,以Gadget插入主机的全过程为主线,分析USB Gadget的架构。

2. 源码架构

USB的源码位于/drivers/usb文件夹内,其中包括核心层core,主控制器host,U盘storage,以及USB Gadget等。

linux usb ga驱动详解,Linux设备驱动子系统 - USB Gadget_第1张图片

gadget文件夹里存放了各芯片厂商支援的USB Gadget控制器驱动,比如支持Mavell的PXA9XX系列的USB Gadget驱动为mv_gadget.c,其架构如下图所示,

linux usb ga驱动详解,Linux设备驱动子系统 - USB Gadget_第2张图片

2.1 Gadget控制器驱动

设备要有gadget功能,硬件上要集成gadget控制器,软件上要具备gadget控制器驱动。

首先是该驱动的数据结构 struct mv_usb_dev,

你可能感兴趣的:(linux,usb,ga驱动详解)