This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

【求助】AM3352 USB0 工作HOST,能用软件方式设置USB0 OTG ID为低电平吗?



用软件方式将USB0强制设置为HOST工作模式,代码修改如下:

static struct omap_musb_board_data musb_board_data = {
.interface_type = MUSB_INTERFACE_ULPI,
/*
* mode[0:3] = USB0PORT's mode
* mode[4:7] = USB1PORT's mode
* AM335X beta EVM has USB0 in OTG mode and USB1 in host mode.
*/
/*.mode = (MUSB_HOST << 4) | MUSB_OTG,*/
.mode = (MUSB_HOST << 4) | MUSB_HOST,
.power = 500,
.instances = 1,

};

由于硬件限制,boot room启动时, 支持USB RNDIS模式升级,及USB0 OTG ID硬件必须为悬空。

现在硬件没有将USB0 的OTG ID引出到EVK板,没法通过插入U盘的方式,将OTG ID管脚连接到地。

现在需求:

1、USB0 OTG ID悬空,能实现Boot room usb rndis升级;

2、在Linux操作系统下,USB0作为HOST,能访问U盘。

现在调试发现:

1、当将USB0 OTG ID管脚接地,可以正常访问U盘。

在没插入U盘的情况下:

root@am335x-evm:~# cat /proc/driver/musb_hdrc.0
Status: MHDRC, Mode=Host (Power=e0, DevCtl=19) #####USB0 工作在A device模式下
OTG state: a_idle; inactive
Options: ?dma?, otg (peripheral+host), [eps=16]
Peripheral address: 00
Root port status: 00000100
CPPI: txcr=0 txsrc=0 txena=0; rxcr=0 rxsrc=280de80 rxena=0

2、如果USB0 OTG ID管脚接地,不识别访问U盘。

在没插入U盘的情况下:

root@am335x-evm:~# cat /proc/driver/musb_hdrc.0
Status: MHDRC, Mode=Host (Power=e0, DevCtl=99) ###USB0 工作在B Device下;
OTG state: a_idle; inactive
Options: ?dma?, otg (peripheral+host), [eps=16]
Peripheral address: 00
Root port status: 00000100
CPPI: txcr=0 txsrc=0 txena=0; rxcr发表=0 rxsrc=280de80 rxena=0

3、如果USB0 OTG ID悬空,强行通过命令,将USB0改为A device,发现立即变回B device;

感觉USB 控制器有firmware在一直监控OTG ID。

请问有没有软件方法,设置OTG ID 接地状态,这样,我就可以不需要修改硬件,将USB0 OTG ID管脚拉到EVK底板上。

请求FAE帮忙指导一下,谢谢。