Hi,
Sorry if this is the wrong forum for this question. I've already posted a similar question in the OMAP-forum
but got no answer, so I try here instead. I am not a harware person so please bear with my ignorance:)
Trying to use the OTG as host. The board has a TWL4030 (which I assume is compatible with TPS65950).
My situation is:
* Beagleboard (rev.B7) using TWL4030 OTG port.
* OTG-port is connected to a mini-A connector (yes, ID pin is grounded!!!!).
* OTG-port --> mini-A --> mini-B --> USB self powered Hub.
* VBAT = 4.2 V
* USB-OTG (host) works in Linux (2.6.33). Self powered Hub is detected.
* USB-OTG (host) DON'T work in U-Boot (usb reset time out). Self powered Hub is NOT detected.
I have noticed the following in U-Boot:
* VBUS is only driven to 4.2 V when bit DRVVBUS is activated.
* As soon as session is started (DEVCTL.SESSION=1) VBUS falls down to 0 V.
* DEVCTL.HOSTMODE is never set, leading to timeout for command 'usb reset'.
* Experimented with register TESTMODE (bit FORCE_HOST) with no luck.
I have noticed the following in Linux:
* VBUS is driven to 5.1 V.
Why is VBUS never near 5 V in U-Boot but 4.2V (which seems to be same level as VBAT)?
The Linux kernel have no problems with the same hardware and cable configuration.
I've instrumented the code in U-Boot and tried to follow the sequence and function twl4030_usb_ulpi_init() is getting called.
I've also tried to compare the U-Boot code with kernel code and it looks like the init-sequence is the same. But I'am missing something.
Once Linux has been started It is possible to restart and halt in U-Boot. This time everything works OK and it is
possible to use command 'usb reset', which detects the Hub. This probably works because the VBUS is left at 5.1 V during the restart.
Any hints would be appreciated.