赞
踩
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"即可。
公共资源和属性对应的USB DTS节点如下:
我们调试USB 2.0时,参考文档的<Type-A USB 2.0 硬件电路>章节即可。
下面是板子usb接口,发现接上鼠标和u盘没有反应,串口也没有任何连接打印。
调试步骤:
首先我们参考文档<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"; };
硬件原理图中hub_host4和host1是复合连接:
这里的host1连接了hub_host4
所以要对应检查usb hub这边的供电。
用万用表检查发现这边GPIO口的电容C350没有电压,需要在dts中配置。
添加代码:drivers/misc/5v_en.c,增加硬件定制化的GPIO口代码。
需要修改Makefile把添加的代码编译进.o文件才能生效。可以在代码中加打印,在开机串口日志中查看有没有编译生效。
参考:
https://blog.csdn.net/weixin_43245753/article/details/123496262
RKDocs/common/usb/Rockchip_RK3588_Developer_Guide_USB_CN.pdf
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。