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

本文详细介绍了Linux USB Gadget驱动,以Mavell为例,探讨了USB Gadget的源码架构,包括控制器驱动、设备驱动和Composite设备。枚举过程涉及attached->powered->default->address->configured几个阶段,通过中断处理和gadget控制器驱动的枚举服务进行。此外,还阐述了设备驱动的bind和setup函数在枚举过程中的作用。
摘要由CSDN通过智能技术生成

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等。

41aefb3983b8f3173cef5e5015438c9a.png

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

e4dc56acb444d08cd59016c684c55686.png

2.1 Gadget控制器驱动

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

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值