工具/软件:
尊敬的团队:
我们正在将 TI HD3SS3220 Type-C 多路复用器与 Xilinx ZCU21DR 平台集成。 我们在 Xilinx Linux 内核中启用了相关驱动程序、
CONFIG_TYPEC=y
CONFIG_TYPEC_HD3SS3220 = y
CONFIG_USB_XHI_HCD=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_Xilinx = y
DTSI
&USB1{
状态=“正常“;
};
&usb0{
状态=“正常“;
};
&dwc3_0{
状态=“正常“;
DR_MODE =“OTG";“;
USB 角色开关;
role-switch-default-mode =“无“;
角色开关=<&hd3ss3220_EP>;
最大速度=“超高速“;
};
Amba_pl:Amba_pl@0{
#address-cells =<2>;
#size-cells =<2>;
compatible =“simple-bus";“;
范围;
axi_ic_usb:I2C@a0010000{
#address-cells =<1>;
#size-cells =<0>;
时钟名称=“s_axi_aclk";“;
Clocks =<&zynqmp_clk 71>;
兼容=“xlnx、axi-IIC-2.1“、“xlnx、xPS-IIC-2.00.a“;
interrupts-names =“iic2intc_irpt";“;
Interrupt-parent =<&GIC>;
中断=<0 90 4>;
REG =<0x0 0xa0010000 0x0 0x10000>;
hd3ss3220@47{
兼容=“ti、hd3ss3220“;
REG =<0x47>;
Interrupt-parent =<&GPIO>;
中断=<79 8>;
接头{
Compatible =“usb-c-connector";“;
标签=“USB-C;
数据角色=“OTG";“;
端口{
#address-cells =<1>;
#size-cells =<0>;
端口@1{
reg =<1>;
hd3ss3220_EP:端点{
USB 角色开关;
数据通路=<1>;
};
};
};
};
};
};
};
我们通过读取状态寄存器 (0x08) 成功检测连接和分离事件。 在发生连接事件时、我们通过 GPIO 控制启用 VBUS。
不过、我们可以观察到、连接的 USB 设备仅在高速 (USB 2.0) 下进行枚举、并且无法在 SuperSpeed (USB 3.0) 下进行枚举。
root@uetcx62x:# i2cget -y -f 2 0x47 0x08 0x01 root@uetcx62x :~ echo 412 >/sys/class/gpio/export root@uetcx62x: ~# echo out >/sys/class/gpio/gpio412/direction root@uetcx62x :@# echo 1 >/sys/class/gpio/gpio412/value root~ uetcx62x:~# 030087013021045221 [254.431442] USB-storage 1-1:1.0:检测到 USB 大容量存储设备 [254.437979] SCSI host0:USB-storage 1-1:1.0 [255.450631] SCSI 0:0:直接访问 SanDisk Ultra 1.00 PQ:0 ANSI :6 [255.459323] SD 0:0:0:[SDA] 60063744 512 字节逻辑块:(30.8 GB/28.6 GiB) [255.469222] SD 0:0:0:0:0:0:[SDA1]写保护 已关闭[255.474390] SD 0:0:0:0:0:[SDA:255.469222] 某些数据可能已损坏。 请运行 fsck。 [255.824698]在/run/media/sda1 上装载的 vfat 文件系统支持到 2107 的时间戳 (0x10391447e)
root@uetcx62x:/sys/bus/usb/devices # root@uetcx62x:/sys/bus/usb/devices # lsusb Bus 001 器件 001:ID 1d6b:0002 Bus 001 Device 002:ID 0781:558a
总线 002 设备 001:ID 1d6b:0003
您能否介绍此行为的可能原因、以及调试或解决 SuperSpeed 检测问题的任何建议?
为了便于您参考、我们随附了相关的原理图和日志。

