SSU_USB使用参考
REVISION HISTORY¶
Revision No. | Description |
Date |
---|---|---|
1.0 | 05/12/2023 |
1. 概述¶
Opera提供最多3个USB Port:
2个USB2.0 Port(P0和P1), 其中P0可以作为Device或者Host, P1只能作为Host 1个USB3.0 Port, 只能作为Host
2. Linux配置使用USB device¶
2.1. kernel config配置¶
Opera只有USB2.0 Port0支持配置成USB device, device的配置方式主要是开启UDC的配置(udc-msx250x.ko)和gadget的一些配置(具体看需要哪个function)
开启UDC配置(生成usb-common.ko、udc-core.ko、udc-msb250x.ko)
[*]USB support ---> [M]USB Gadget Support ---> USB Peripheral Controller ---> [M]Sstar USB 2.0 Device Controller
开启gadget配置, 红色箭头指向为配置具体的device function(生成libcomposite.ko, 以及具体function的ko)
[*]USB support ---> [M]USB Gadget Support ---> [M]USB functions configurable through configfs
也可通过加载对应的g_xxx.ko来配置gadget:
[*]USB support ---> [M]USB Gadget Support ---> USB Gadget precomposed configurations
例如adb需要打开如下配置(生成usb_f_fs.ko):
2.2. dts配置¶
对应pioneer5.dtsi里面的节点如下, status default是okay的:
2.3. ko加载¶
按如下顺序加载ko:
#usb2.0 device normal ko usb-common.ko udc-core.ko udc-msb250x.ko libcomposite.ko #device function ko 例如adb需要加载usb_f_fs.ko
3. Linux配置使用USB host¶
Opera的3个USB Port均支持配置成USB host
3.1. USB2.0配置成USB host¶
3.1.1. kernel config配置¶
kernel config打开如下配置:
COFNIG_USB_EHCI_HCD:(生成ehci-hcd.ko)
CONFIG_SS_USB2_PHY:(生成phy-sstar-u2phy.ko)
3.1.2. dts配置¶
对应pioneer5.dtsi的节点如下, USB2.0配置成host需要设置sstar_ehci1/sstar_ehci1节点的status为okay
在板级dts里面会将status覆盖为okay, 例如pioneer5-ssz028b-s01a-s.dts里面会将sstar_ehci2的status覆盖为okay, 即default usb2.0 port1用作host
sstar_ehci1还是disalbed, 即default usb2.0 port0用作device, 如果要使用port0作为host, 需要设置sstar_ehci1的status也为okay, 同时不要加载device的ko
3.1.3. ko加载¶
按如下顺序加载ko:
#usb2.0 host normal ko usb-common.ko phy-sstar-u2phy.ko ehci-hcd.ko
3.2. USB3.0配置成USB host¶
3.2.1. kernel config配置¶
kernel config打开如下配置:
COFNIG_SS_USB3_PHY:(生成usb3-phy.ko)
CONFIG_USB_XHCI_HCD:(生成xhci-hcd.ko、xhci-plat-hcd.ko)
COFNIG_USB_DWC3:(生成dwc3.ko)
CONFIG_SSTAR_USB_DWC3_OF_SIMPLE:(生成sstar-dwc3-of-simple.ko)
3.2.2. dts配置¶
对应pioneer5.dtsi的节点如下, USB3.0配置成host需要设置usb3drd_ctrl、u3phy、usb3_drd节点的status为okay
usb3drd_ctrl:
u3phy:
usb3_drd:
3.2.3. ko加载¶
按如下顺序加载ko:
#usb3.0 host normal ko usb-common.ko usb3-phy.ko xhci-hcd.ko xhci-plat-hcd.ko dwc3.ko sstar-dwc3-of-simple.ko
4. Vbus控制¶
目前SSU9386和SSD2381的板子usb host vbus是通过SAR_GPIO1来控制的, 如下图
uboot和kernel已经包含了相关的Vbus去拉gpio的逻辑,需要在板级的dts里面配置, 比如pioneer5-ssz028b-s01a-s.dts里面的配置如下