一、问题背景

自研3568方案上有两路USB,其中一路是OTG口,这个口平时用于固件烧录和adb调试,但是不做调试的时候需要当成普通USB口使用,但是目前发现这个otg口无法识别U盘。

二、解决方案

查看dts文件发现,dr_mode默认配置成了otg,导致驱动不会去识别U盘,改成host后问题解决

--- a/Android/kernel-4.19/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi

+++ b/Android/kernel-4.19/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi

@@ -1165,7 +1165,7 @@

};

&usbdrd_dwc3 {

- dr_mode = "otg";

+ dr_mode = "host";

extcon = <&usb2phy0>;

status = "okay";

};

注:如果此修改还不能解决,可以看下USB的5V供电是不是正常的,之前otg口的5V开机后默认是没有供电的,这个要先改成开机后5V常供。

参考文章:USB总线-Linux内核USB3.0设备控制器之dwc3 gadget驱动初始化过程分析(五)_业余程序员plus的博客-CSDN博客