首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

USB总线-Linux内核USB3.0控制器初始化代码分析(三)

、电源、extcon(用于USB模式切换),另一个在synopsys提供的驱动中初始化,位于drivers/usb/dwc3/core.c文件中,这部分和USB3.0控制器密切相关,如USB3.0控制器内部寄存器地址...只有两个模块都初始化完毕,USB3.0控制器才能正常工作。本节只分析USB驱动早期初始化部分。 2.设备树 下面是USB3.0控制器的设备树节点。...初始化驱动分为两部分,一部分是和CPU相关的初始化,如时钟、电源等,由rockchip提供的驱动完成,另一部分是USB控制器相关的初始化,如USB控制器寄存器地址、中断、PHY等,由synopsys官方的驱动完成...控制器事件传输到dwc3_event_buffer后由CPU处理 (4)核心初始化USB模式初始化,后面详细分析 (5)初始化调试文件,具体如下图所示,用户可以在用户空间获取USB控制器信息和控制USB...USB控制器硬件,主要流程如下: (1)获取USB控制器IP的版本,便于后续进行不同的配置,USB控制器不同IP版本之间有差别,将Linux内核版本号写入USB控制器寄存器,以便发现某些版本下的bug

6K30

USB总线-Linux内核USB3.0设备控制器之dwc3 gadget驱动初始化过程分析(五)

2.控制器模式 USB控制器切换为设备模式后使用UDC驱动,因此先从USB设备控制器初始化过程开始分析,并对关键的数据结构做出说明。...2.1.初始化 在设备树中,设置dr_mode = "otg"属性,则dwc3控制器初始化的时候会将控制器设置为USB_DR_MODE_OTG模式,同时调用dwc3_host_init和dwc3_gadget_init...dwc3 USB3.0控制器初始化过程如下图所示,重点分析初始化设备模式的过程,主要的工作如下: (1)将控制器设置为USB_DR_MODE_OTG模式。...2.2.模式切换 在设备树里面,将dwc3 USB控制器配置成peripheral模式,系统启动的时候会将USB控制器设置为设备模式,并初始化gadget相关资源,若配置成了otg模式,则只会初始化gadget...是Linux内核描述USB设备控制器端点的通用数据结构。

5.3K30
您找到你想要的搜索结果了吗?
是的
没有找到

USB总线-Linux内核USB3.0设备控制器之UDC驱动分析(六)

USB Function驱动通过调用这些接口匹配及访问USB设备控制器,而底层USB控制器驱动要实现这些接口定义的功能。下面分析一下主要的UDC驱动接口调用流程。 2....加入过程在UDC驱动初始化的时候已经分析过了,这里不再赘述。...使能端点0的步骤如下: 向控制器发送开始新配置命令DWC3_DEPCMD_DEPSTARTCFG(初始化的时候需要发送此命令),所有端点设置端点传输资源配置命令DWC3_DEPCMD_SETTRANSFRESOURCE...保存端点描述符、USB3.0伴侣描述符、保存端点类型、设置端点使能标志、向寄存器中写入端点编号以使能端点,非控制端点还要初始化TRB。 开始ep0 out传输,用于响应主机发送的请求。...调用usb_gadget_map_request映射request的缓冲区。 准备一个TRB,将其和request绑定,固定使用dwc->ep0_trb[0]。初始化的时候端点0分配了2个TRB。

8.8K20

linux usb端点

一系列相互独立的端点在一起构成了USB逻辑设备,在系统结构中,位于下方红色方框内: 二、端点的分类 每个USB设备都有一个唯一的设备地址,设备地址是设备连接上主机时由主机分配的,主机主要依靠这个设备地址对...USB设备进行访问。...五、端点与管道 1、管道的概念 管道是主机软件(数据缓存区),和USB设备各各端点之间的数据传输连接,他是两者之间通信流的抽象(实际上数据传输是USB总线接口完成)。...1)、“流”指不具有USB定义格式的数据流,流通道中的数据是流的形式,也就是该数据内容不具有USB要求的结构。...2)、“消息”指具有某种USB定义格式的数据流。消息通道与端点的关系同流通道与端点的关系是不同的。

9.9K30

USB总线-RK3399 USB3.0控制器特性介绍(二)

1.RK3399 USB 下图是RK3399 SOC的框图。RK3399包含了2个USB2.0 Host控制器;两个USB3.0 OTG控制器,同时兼容USB2.0。...2.USB3.0 OTG Controller简介 USB3.0 OTG控制器可以作为主机(Host)、设备(Device),或者根据从USB2.0 PHY和DFP/UFP/Data Role Swap...USB3.0 OTG控制器支持如下的特性: 1)通用特性 兼容规范 Universal Serial Bus 3.0 Specification, Revision 1.0 Universal...xHCI控制器特性 最多支持64个设备 拥有一个interrupter 拥有1个USB2.0 port和1个Super-Speed port 拥有xHCI调试能力 USB3.0/USB2.0并发传输,...OTG A设备和B设备 3.USB3.0 OTG Controller硬件框图 从下面的硬件框图中可以看出,USB3.0 OTG控制器内部的USB2.0和USB3.0的PHY和MAC是独立的,各自使用自己的硬件

2.1K20

基于FPGA的USB接口控制器设计(附代码)

今天给大侠带来基于 FPGA 的 USB 接口控制器设计(VHDL),由于篇幅较长,分三篇。今天带来第三篇,下篇,FPGA 固件开发、USB驱动和软件开发。话不多说,上货。...这里也给出前两篇的超链接: 基于FPGA的USB接口控制器设计(VHDL)(上) 基于FPGA的USB接口控制器设计(VHDL)(中) 之前有关于 Veriliog HDL 实现的 USB 接口控制器设计...而有些USB设备是需要特殊驱动的,比如某些手机,连接到电脑的USB口,是需要安装驱动才能使用的。下面我们一起动手做一做USB接口控制器设计,了解一下如何设计。...• 初始化器件:初始化器件就是对 PDIUSBD12 器件进行配置的状态,需要配置的内容包括设置地址/使能、设置 DMA 以及设置模式等。...1)初始化器件 初始化器件相关的状态主要是 TS_DISCONNECTED 和 TS_CONNECTING(状态的定义见USB_Package.vhd 文件),其中 TS_DISCONNECTED 是系统复位后的状态

2.3K10

Linux USB 设备驱动模型

Linux 内核源码:include\linux\usb.h Linux 内核源码:drivers\hid\usbhid\usbmouse.c 1....BUS/DEV/DRV 模型 "USB 接口"是逻辑上的 USB 设备,编写的 usb_driver 驱动程序,支持的是"USB 接口": USB 控制器或 Hub 识别出 USB 设备后,会创建、...接口函数 在 USB 设备驱动程序中,能使用的 USB 函数都在这个头文件里:include\linux\usb.h。...对于一般的 buffer,在提交 URB 时会临时分配一个 DMA Buffer: 发送数据时:函数内部会先从一般 buffer 中把数据复制到 DMA Buffer,在提交给 USB 控制器 读取数据时...:这是一个同步函数,它会等待 URB 结束 usb_unlink_urb:这是一个异步函数,它不会等待 URB 结束,USB 控制器驱动会调用它的回调函数 void usb_kill_urb(struct

45340

基于FPGA的USB接口控制器设计(VHDL)(上)

今天给大侠带来基于 FPGA 的 USB 接口控制器设计(VHDL),由于篇幅较长,分三篇。今天带来第一篇,上篇,USB 接口简介 以及 USB 体系结构。话不多说,上货。...之前有关于 Veriliog HDL 实现的 USB 接口控制器设计,这里放上超链接,仅供各位大侠参考。 源码系列:基于 FPGA 的 USB2.0 设计 ?...而有些USB设备是需要特殊驱动的,比如某些手机,连接到电脑的USB口,是需要安装驱动才能使用的。下面我们一起动手做一做USB接口控制器设计,了解一下如何设计。...USB 和主机系统的接口称作主机控制器(HostController),主机控制器可由硬件、固件和软件综合实现。...USB 主机是整个 USB 系统通信的控制方,它通过主机控制器USB设备进行交互。

1.3K30

基于FPGA的USB接口控制器设计(VHDL)(下)

今天给大侠带来基于 FPGA 的 USB 接口控制器设计(VHDL),由于篇幅较长,分三篇。今天带来第三篇,下篇,FPGA 固件开发、USB驱动和软件开发。话不多说,上货。...之前有关于 Veriliog HDL 实现的 USB 接口控制器设计,这里放上超链接,仅供各位大侠参考。 源码系列:基于 FPGA 的 USB2.0 设计 ?...而有些USB设备是需要特殊驱动的,比如某些手机,连接到电脑的USB口,是需要安装驱动才能使用的。下面我们一起动手做一做USB接口控制器设计,了解一下如何设计。...1)初始化器件 初始化器件相关的状态主要是 TS_DISCONNECTED 和 TS_CONNECTING(状态的定义见USB_Package.vhd 文件),其中 TS_DISCONNECTED 是系统复位后的状态...图 48 USB 接口软件模型 USB 系统软件根据功能可以分为 USBD 和 HCD 上下两部分,其中 HCD 为上层提供了主机控制器的抽象以及数据在总线上的传输抽象。

1.4K20

基于FPGA的USB接口控制器设计(VHDL)(中)

(4)USB 控制器 USB 控制器指的就是带有 USB 接口器件的处理器。...连接的建立通过外部/系统微控制器发送命令来实现。这就允许系统微控制器在决定与 USB 建立连接之前完成初始化时序。USB总线连接可以重新初始化而不需要拔出电缆。...PDIUSBD12 的命令大致可以分为下面 3 类: • 初始化命令:初始化命令在 USB 网络进行枚举处理的时候使用,用于使能端点的功能,还可以用来设置 USB 分配的地址,其命令如表 20 所示。...表 20 PDIUSBD12 命令汇总表——初始化命令 ?...如果端点应当停在停止状态,微控制器可以重新停止它。当一个停止的端点解除了停止(设置端点命令或接收到一个 SETUP 标志),它同时被重新初始化

1.4K20

Linux驱动开发: USB驱动开发

USB控制器广播令牌,总线上设备检测令牌中的地址是否与自身相符,通过接收或发送数据给主机来响应。USB通过支持悬挂/恢复操作来管理USB总线电源。...主机,也称为根,根结或根Hub,它做在主板上或作为适配卡安装在计算机上,主机包含有主控制器和根集线器(Root Hub),控制着USB总线上的数据和控制信息的流动,每个USB系统只能有一个根集线器,它连接在主控制器上...("识别到USB光谱仪设备,正在进行设备初始化....complete_fn, void *context) 4.10 urb数据结构初始化(等时)  等时urb 没有和中断、控制、批量urb 类似的初始化函数,因此它们在提交到USB核心之前...,需要在驱动程序中手动的初始化

69.4K20

Linux USB 设备基础理论

通过扫描以下目录获取物理节点所有 USB 设备: /sys/bus/usb/devices/usb* /sys/bus/usb/devices/usb*/$busnum-* 从该文件系统收集某一个设备的主要信息如下..."level": 1, "manufacturer": "QEMU", "port": 0, "prodid": "0001", "product": "QEMU USB...: 产品 serial: USB 硬件设备序列号 ,例如 0000:00:01.2 定位方法# 定位某一个 USB 设备的方法有两种: busnum + devnum idVendor + idProduct...Type-C Bridge Class DCh 设备描述符、接口描述符 Diagnostic Device E0h 接口描述符 无线控制器 EFh 设备描述符、接口描述符 Miscellaneous...By USB 中文网 USB设备描述符中的idVendor、idProduct和bcdDevice By USB 中文网 USB 硬件设备的序列号 By IBM 注:本作品采用 知识共享署名-非商业性使用

31330

PW6603USB PD 协议 SINK 端输出控制器芯片

在当今的快充技术领域,USB PD 协议已经成为主流。而为了实现更高效的充电,一个关键的组件就是 SINK 端输出控制器芯片。...在这个主题中,我们将深入探讨 泛海微PW6603USB PD 协议 SINK 端输出控制器芯片的相关特点和优势。首先,让我们了解一下 USB PD 协议。...它是一种基于 USB Type-C 接口的电源传输协议,通过协商电压和电流,实现更高效、更安全的充电。而 PW6603 是一款支持 USB PD 协议的 SINK 端输出控制器芯片。...支持 USB PD 3.0 协议:PW6603 兼容最新的 USB PD 3.0 协议,使得充电效率更高,同时也增强了兼容性。2. ...总之,PW6603USB PD 协议 SINK 端输出控制器芯片是一款优秀的快充解决方案。

15410
领券