Other Parts Discussed in Thread: AM3505, AM3517
Hi all,
I'm facing an issue with a AM3505 based target.
MUSB OTG port often fails to enumerate and connect to various HID low speed devices. The same issue happens on EVM board with 2.6.37 kernel.
I've seen that plugging in the device often VBUS drops below 4v7 for few ms during device power up, thus receiving a VBUS low interrupt: after that communication between host and device is stalled and enumeration fails.
Did anyone of you already face this problem? Please note that when I don't receive the VBUS interrupt (that is HID device supply is fully usb compliant) enumeration is ok.
It seems an issue with hub reset - hub state machine when dealing with this VBUS low detection
This is an excerpt from the kernel log when connection fails:
[ 101.815673] musb_stage0_irq 798: CONNECT (a_host) devctl 3d
[ 101.821533] musb_host_rx 1536: BOGUS RX10 ready, csr 0000, count 0
[ 101.828216] musb_hub_control 343: port status 00010301
[ 102.046661] musb_port_reset 158: root port reset stopped
[ 102.052307] musb_hub_control 343: port status 00120303
[ 102.057708] am35x_musb_interrupt 515: is-active = 0
[ 102.062927] am35x_musb_interrupt 523: VBUS off (b_idle), devctl 90
[ 102.069427] musb_interrupt 1639: ** IRQ peripheral usb0004 tx0000 rx0400
[ 102.076446] musb_stage0_irq 496: <== Power=f0, DevCtl=90, int_usb=0x4
[ 102.083221] musb_stage0_irq 867: BUS RESET as b_idle
[ 102.088409] musb_g_reset 2047: <== B-Device addr=0 driver 'g_ether'
[ 102.156127] usb 2-1: new low speed USB device using musb-hdrc and address 3
[ 102.218566] musb_hub_control 343: port status 00020213
[ 102.281036] musb_hub_control 343: port status 00020213
......
[ 105.023254] musb_hub_control 343: port status 00020213
[ 105.234191] musb_hub_control 343: port status 00020213
[ 105.239654] hub 2-0:1.0: Cannot enable port 1. Maybe the USB cable is bad?
[ 105.304534] musb_hub_control 343: port status 00020211
When the device is correctly detected we have this initial log:
[ 29.001281] musb_interrupt 1639: ** IRQ host usb0010 tx0000 rx0000
[ 29.007781] musb_stage0_irq 496: <== Power=e0, DevCtl=3d, int_usb=0x10
[ 29.014984] musb_stage0_irq 798: CONNECT (a_host) devctl 3d
[ 29.021331] musb_hub_control 343: port status 00010301
[ 29.242065] musb_port_reset 158: root port reset stopped
[ 29.247772] musb_hub_control 343: port status 00120303
[ 29.312408] usb 2-1: new low speed USB device using musb-hdrc and address 2
[ 29.319854] musb_start_urb 276: qh cec51380 urb cec0aec0 dev0 ep0out, hw_ep 0, cecdc700/8
[ 29.328460] musb_ep_program 749: --> hw0 urb cec0aec0 spd1 dev0 ep0out h_addr00 h_port00 byte
s 8
[ 29.337677] musb_write_fifo 272: TX ep0 fifo d0810420 count 8 buf cecdc700
[ 29.344879] musb_start_urb 314: Start TX0 pio
......