rk的usb模块的文档写得蛮详细的。基本对照文档稍加改动就行。
对照文档《Rockchip_RK3588_Developer_Guide_USB_CN.pdf》
usb分为:
Type C类型,包括:
type C usb 3.1/DP
type-C to Type-A USB 3.1/DP
type-C to Type-A USB 2.0/DP
type-C to Type-A USB 2.0/DP)
Type-A接口类型:
type-A USB 3.1
type-A USB 2.0
Micro接口类型:
micro USB 3.1
micro USB 2.1
rk3588的DTSI文件中的USB控制器和PHY的公共资源和属性已经在rk3588-evb.dtsi中配好,只需要将不使用的USB节点配置"disabled"即可。
![](https://i-blog.csdnimg.cn/blog_migrate/823bf4b6bcf9bd726b29afe16bc91c08.png)
公共资源和属性对应的USB DTS节点如下:
![](https://i-blog.csdnimg.cn/blog_migrate/addfdc9ed640f92ab95eb3e74a32e2ae.png)
我们调试USB 2.0时,参考文档的<Type-A USB 2.0 硬件电路>章节即可。
下面是板子usb接口,发现接上鼠标和u盘没有反应,串口也没有任何连接打印。
![](https://i-blog.csdnimg.cn/blog_migrate/996903aa6c5e19b62920d82b1c8da958.png)
调试步骤:
首先我们参考文档<Type-A USB 2.0 DTS配置>章节:
靠看我们板子x3588的dts配置:
// rk3588-x3588-sdk.dts
.....
// #VBUS GPIO配置,在USB2.0 PHY驱动中控制该GPIO
vcc5v0_host: vcc5v0-host {
compatible = "regulator-fixed";
regulator-name = "vcc5v0_host";
regulator-boot-on;
regulator-always-on;
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
enable-active-high;
gpio = <&gpio1 RK_PD7 GPIO_ACTIVE_HIGH>; // GPIO:USB_HOST_PWREN_H
vin-supply = <&vcc5v0_usb>;
pinctrl-names = "default";
pinctrl-0 = <&vcc5v0_host_en>;
};
......
// #USB2.0 PHY2/3配置"phy-supply"属性,用于控制VBUS输出5V
&u2phy2_host {
phy-supply = <&vcc5v0_host>;
};
&u2phy3_host {
phy-supply = <&vcc5v0_host>;
};
//include rk3588-evb.dtsi
// usb 2.0 host 0/1 controller
&usb_host0_ehci {
status = "okay";
};
&usb_host0_ohci {
status = "okay";
};
&usb_host1_ehci {
status = "okay";
};
&usb_host1_ohci {
status = "okay";
};
![](https://i-blog.csdnimg.cn/blog_migrate/04aadf5b35030dc85487bd4a3987bbb2.png)
硬件原理图中hub_host4和host1是复合连接:
![](https://i-blog.csdnimg.cn/blog_migrate/2d6ae96456fc9051d159960e9ce625a9.png)
这里的host1连接了hub_host4
![](https://i-blog.csdnimg.cn/blog_migrate/7c3f85a61cac70642bc241610507fa4b.png)
所以要对应检查usb hub这边的供电。
![](https://i-blog.csdnimg.cn/blog_migrate/db4fdb8a04f5ce5d4ebc7b70b5d37afb.png)
用万用表检查发现这边GPIO口的电容C350没有电压,需要在dts中配置。
![](https://i-blog.csdnimg.cn/blog_migrate/4073086c94d6dea0dd70a0c16c1f6c6c.png)
添加代码:drivers/misc/5v_en.c,增加硬件定制化的GPIO口代码。
![](https://i-blog.csdnimg.cn/blog_migrate/32cfc731be56e371291e549cba30d152.png)
需要修改Makefile把添加的代码编译进.o文件才能生效。可以在代码中加打印,在开机串口日志中查看有没有编译生效。
![](https://i-blog.csdnimg.cn/blog_migrate/be5f7db4045f89ff85eb21faa89c2441.png)
参考:
https://blog.csdn.net/weixin_43245753/article/details/123496262
RKDocs/common/usb/Rockchip_RK3588_Developer_Guide_USB_CN.pdf