USB Gadget
+ -

IMX6UL UDC设备信息

2025-10-09 本文链接为:http://www.usbzh.com/article/detail-1592.html ,欢迎转载,转载请附上本文链接。

在Linux系统中可以通过如下命令查查UDC设备信息,在imx6ull开发板中的信息如下:

droot@ATK-IMX6U:/dev# ls /sys/class/udc/
ci_hdrc.0

当前设备下的信息如下:

root@ATK-IMX6U:/sys/class/udc/ci_hdrc.0# ls -l
total 0
-r--r--r-- 1 root root 4.0K Dec  8 21:51 a_alt_hnp_support
-r--r--r-- 1 root root 4.0K Dec  8 21:51 a_hnp_support
-r--r--r-- 1 root root 4.0K Dec  8 21:51 b_hnp_enable
-r--r--r-- 1 root root 4.0K Dec  8 21:51 current_speed
lrwxrwxrwx 1 root root    0 Dec  8 21:53 device -> ../../../ci_hdrc.0
-r--r--r-- 1 root root 4.0K Dec  8 21:51 is_a_peripheral
-r--r--r-- 1 root root 4.0K Dec  8 21:51 is_otg
-r--r--r-- 1 root root 4.0K Dec  8 21:51 is_selfpowered
-r--r--r-- 1 root root 4.0K Dec  8 21:51 maximum_speed
drwxr-xr-x 2 root root    0 Dec  8 21:51 power
--w------- 1 root root 4.0K Dec  8 21:51 soft_connect
--w------- 1 root root 4.0K Dec  8 21:51 srp
-r--r--r-- 1 root root 4.0K Dec  8 21:51 state
lrwxrwxrwx 1 root root    0 Dec  8 21:53 subsystem -> ../../../../../../../../class/udc

可以查看部分属性的信息:

root@ATK-IMX6U:/sys/class/udc/ci_hdrc.0# cat current_speed
high-speed
root@ATK-IMX6U:/sys/class/udc/ci_hdrc.0# cat is_otg 
0
root@ATK-IMX6U:/sys/class/udc/ci_hdrc.0# cat maximum_speed 
high-speed
root@ATK-IMX6U:/sys/class/udc/ci_hdrc.0# cat state
configured
root@ATK-IMX6U:/sys/class/udc/ci_hdrc.0# cat a_alt_hnp_support 
0
root@ATK-IMX6U:/sys/class/udc/ci_hdrc.0# cat b_hnp_enable 
0
root@ATK-IMX6U:/sys/class/udc/ci_hdrc.0# cat is_a_peripheral 
0
root@ATK-IMX6U:/sys/class/udc/ci_hdrc.0# cat is_selfpowered 
1

驱动配置

该UDC硬件的驱动源文件路径位于:linux4.1.15\drivers\usb\chipidea
通过分析Kconfig文件。如果独立编译,其生所的独立内核模块为ci-hdrc.ko
其依赖配置信息如下:

((USB_EHCI_HCD && USB_GADGET) 
|| (USB_EHCI_HCD && !USB_GADGET) 
|| (!USB_EHCI_HCD && USB_GADGET))
&& HAS_DMA

所以最终结果是:

(USB_EHCI_HCD || USB_GADGET) && HAS_DMA

所以驱动是需要在支持 DMA 的硬件上工作,并且它只为 USB 2.0 主机控制器(EHCI)或 USB 设备控制器(Gadget)提供服务。说人话就是该驱动是UDC和ECHIC控制器的驱动。

本文链接为:http://www.usbzh.com/article/detail-1592.html ,欢迎转载,转载请附上本文链接。

0 篇笔记 写笔记

USB Gadget CDC-ECM网卡实例
ECM和NCM网卡类似,也需要安装ECM驱动设备兼容ID为:USBClass_02&SubClass_06&Prot_00USBClass_02&SubClass_06USBClass_02创建脚本:#!/bin/bashmodprobe libcompos......
Linux Gadget驱动结构关系图
Linux Gadget驱动层级如下:Gadget Function驱动/gadget legacy驱动Gadget Compoiste驱动USB UDC驱动(USB Device Control)Gadget Function驱动/gadget legacy驱动function, 更加现......
fusb300_udc
usbgadgetudcfusb300_udc是平台设备驱动程序static struct platform_driver fusb300_driver = { .remove = fusb300_remove, .driver = { ......
gadget probe过程-以g_audio为例
g_audio中通过如下代码调用usb_composite_probe,其中入参为audio_driverstatic struct usb_composite_driver audio_driver = { .name = "g_audio", ......
configfs文件系统
Linux内核使用CONFIGFS配置项支持可以通过用户创建USB Compoiste Gadget。CONFIG_CONFIGFS_FS项用于支持配置文件系统。Menconfig -> FileSystems -> Psuedo File System -> {M}User......
Gadget legacy和Gadget Function的区别
在 Linux 的 USB Gadget 子系统中,Legacy GadgetGadget Function(FunctionFS 或 configfs) 是两种不同的实现方式,用于将 Linux 设备配置为 USB 外设(如 U 盘、网卡、串口等)。它们的区别主要体现在架构、使用方式和灵活性......
usb_gadget复合HID键盘和U盘实例
#!/bin/bash# 加载模块modprobe libcompositemodprobe usb_f_hidmodprobe usb_f_mass_storage.komount -t configfs none /sys/kernel/config# 创建 Gadgetcd......
usb gadget创建uvc相机脚本实例
#!/bin/bashmodprobe libcompositemodprobe usb_f_uvcmount -t configfs none /sys/kernel/configmkdir -p /sys/kernel/config/usb_gadget/g1cd /sys/kern......
USB Gadget CDC-ACM串口实例
符合USB ACM规范的设备由Windows提供其驱动程序usbser.sysuserser.infLinux Gadget对应的ACM驱动依赖为root@ATK-IMX6U:/sys/kernel/config/usb_gadget/g1# lsmodModule ......
USB Gadget CDC-NCM网卡实例
USG Gadget也提供了CDC-NCM网卡驱动程序,使用USB Gadget CDC-NCM驱动,这样在Windows主机端和Linux设备端都会创建一个USB网卡设备。root@ATK-IMX6U:/lib/modules/4.1.15# ifconfig -ausb0 Lin......
USB Gadget 打印机实例
打印机这一块应该要与实例相连,具体这一块没有研究过。生成的设备如下:设备模块如下:root@ATK-IMX6U:/lib/modules/4.1.15# lsmodModule Size Used byusb_f_printer 1137......
USB Gadget CDC-EEM网卡实例
从理论上来讲,EEM网卡Windows是应该支持的,实际上也确实不用像NCM、ECM需要手动安装驱动,系统会自动匹配兼容ID来进行安装驱动,但是驱动启动失败,这个Linux系统下就没有问题。#!/bin/bashmodprobe libcompositemodprobe usb_f_eemm......
USB Gadget LoopBack实例
Loopback Function 提供的功能简单,它分配了两个 bulk endpoint,所做的就是把 out_ep 接收到的数据转发到 in_ep。#!/bin/bashmodprobe libcompositemodprobe usb_f_ss_lbmount -t configfs......
USB Gadget RNDIS网络适配器实列
和NCM一样,由于兼容ID的问题,RNDIS网络适配器也需要手动安装驱动。其对应的驱动为:netrndis.infrndismp6.sys其创建脚本如下:#!/bin/bashmodprobe libcompositemodprobe usb_f_rndismount -t conf......
USB Gadget实例分析usb_function_instance和usb_function
linux usb gadtet的设备类驱动有两个很重要的概念:usb_function_instance和usb_function从名来上看,usb_function_instance像是usb_function的实例化,但实际是恰恰相反。这里以f_loopback为示例解释:USB设备信息执......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

    打开支付宝扫一扫,即可进行扫码打赏哦

    您的支持,是我们前进的动力!