文章目录
- 1、环境介绍
- 2、RK3568 USB资源介绍
- 3、配置目标
- 4、dts配置
- 4.1、USB3.0 OTG
- 4.2、USB2.0 Host 2 和 USB2.0 Host 3
- 5、kernel配置
- 5.1、USB PHY CONFIG
- 5.2、USB Host CONFIG
- 5.3、USB OTG CONFIG
- 5.4、USB外设CONFIG
- 5.4.1、Mass Storage Class CONFIG
- 5.4.2、USB HID CONFIG
- 6、测试
- 7、总结
1、环境介绍
硬件:飞凌ok3568-c开发板
软件:原厂rk356x sdk
2、RK3568 USB资源介绍
从上图可以得出,RK3568拥有:
- 2个USB2.0 Host Controller
- 1个USB3.0 Host Controller
- 1个USB3.0 OTG Controller
下图是RK3568 USB控制器和PHY连接示意图:
小结:
上图中,可以看到USB3.0 OTG Controller是可以配置成USB3.0 OTG或USB2.0 OTG。USB3.0 Host Controller是可以配置成USB2.0 Host或USB3.0 Host。
3、配置目标
OK3568-C开发板使用了两个USB2.0 Host:
和一个USB3.0 OTG,通过一个开关控制ID脚来切换USB Host和USB Device:
4、dts配置
4.1、USB3.0 OTG
下面是将USB3.0 OTG Controller配置为USB3.0 OTG的dts配置,如需配置为USB2.0 OTG,参考《Rockchip_RK356x_Developer_Guide_USB_CN.pdf》
。
/* PHY配置 */
/* USB3/SATA Combo PHY_0 */
&combphy0_us {
status = "okay";
};
/* Controller配置 */
/* USB3.0 OTG Controller */
&usbdrd30 {
status = "okay";
};
&usbdrd_dwc3 {
dr_mode = "otg";
status = "okay";
};
4.2、USB2.0 Host 2 和 USB2.0 Host 3
/* PHY配置 */
/* USB2.0 Comb PHY_1 */
&usb2phy1 {
status = "okay";
};
&u2phy1_host {
status = "okay";
};
/* Controller配置 */
/* USB2.0_Host_2_Controller */
&usb_host0_ehci {
status = "okay";
};
&usb_host0_ohci {
status = "okay";
};
/* USB2.0_Host_3_Controller */
&usb_host1_ehci {
status = "okay";
};
&usb_host1_ohci {
status = "okay";
};
5、kernel配置
5.1、USB PHY CONFIG
CONFIG_PHY_ROCKCHIP_INNO_USB2=y
CONFIG_PHY_ROCKCHIP_TYPEC=y
CONFIG_PHY_ROCKCHIP_INNO_USB3=y
5.2、USB Host CONFIG
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
5.3、USB OTG CONFIG
CONFIG_USB_DWC2=y
CONFIG_USB_DWC3=y
5.4、USB外设CONFIG
这里只列举了两个USB外设的配置,大容量存储设备和USB键鼠设备。
5.4.1、Mass Storage Class CONFIG
5.4.2、USB HID CONFIG
USB键鼠配置:
6、测试
目前将开发板的USB3.0 OTG开关切换到USB Host。开机上电,查看内核启动Log:
USB2.0 Host插入U盘Log:
USB3.0 Host插入U盘也是一样的。
当开发板USB3.0 OTG开关切换到USB device模式时,执行如下命令查看是否切换到了USB device:
root@rk3568-buildroot:/# cat /sys/kernel/debug/usb/fcc00000.dwc3/mode
device
7、总结
参考文章:
RK3568 USB功能配置
rk3568 适配USB_—rk3568----CSDN专栏