答案1
{您链接的数据表](的第 46 页https://linux-sunxi.org/images/2/23/Allwinner_V3s_Datasheet_V1.0.pdf)说:
设备模式下最多 8 个用户可配置端点
“在设备模式下”意味着 SoC 充当 USB 设备而不是 USB 主机。在 Linux 中,这称为USB 小工具模式。
要在运行时配置 USB gadget 模式,您显然需要内核构建选项 CONFIG_USB_CONFIGFS,它需要 CONFIGFS_FS。您还需要 USB_LIBCOMPOSITE 和一个或多个 USB_G_* 选项,具体取决于您希望 SoC 向其连接的 USB 主机呈现哪种功能。
配置 USB 小工具功能的描述见文档/usb/gadget_configfs.rst在 Linux 内核源文档中,以及同一目录中的其他 gadget_*.rst 文件记录了您可以使用的(部分)小工具功能。每个功能都将使用一个或多个端点,而使用此 SoC,您只有 8 个可用端点。
例如,如果您将 SoC 配置为提供单一ttyACM
样式的串行通道,则需要三个端点:一个用于控制接口,两个用于数据接口(一个端点用于传输,另一个用于接收)。
如果安装了 debugfs,每个端点都会列为一行E: ...
,因此/sys/kernel/debug/usb/devices
grep ^E: /sys/kernel/debug/usb/devices | wc -l
会告诉您当前 USB 小工具配置使用了多少个端点。
如果您不信任数据表,我想您可以选择使用数据表中指定的端点数量的小工具功能组合,尝试配置它,同时检查报告的任何错误,然后在 USB 主机端验证所有每个配置功能的端点都是可访问的。
如果您不知道您的 USB 设备/OTG 控制器芯片声称在小工具模式下支持多少个端点,我想您可以运行一个循环来创建 USB 小工具函数,直到出现错误,然后检查生成的函数和数量USB 主机系统将能够访问的端点。
答案2
lshw
将列出您的端口,包括它们支持的标准。