Hi Guys,
Please help.USB_HUB.pdf
Our USB2512 HUB connected to USB0 is not getting detected. We are a little stuck and need to complete this spin to get to testing ASAP.
Please see attached schematics.
USB0_ID is pulled directly to gound - not shown on the attached sheet.
The USB0 mode in the kernel is set to MUSB_OTG.
USB0_VBUS is pulled to 5V with 1K.
We verified the input clk is 24MHz - we are not using a crystal.
Out put from cat /proc/driver/musb_hdrc.0 (I'm not sure what it must be?):
Status: MHDRC, Mode=Peripheral (Power=e0, DevCtl=19)
OTG state: b_idle; active
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
Gadget driver: android_usb
ep0 (hw0): 1buf, csr 0000 maxp 0000
(queue empty)
Output in dmesg:
<6>[ 1.374306] musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)
<6>[ 1.374541] musb-hdrc musb-hdrc.0: dma type: dma-cppi41
<6>[ 1.374707] MUSB0 controller's USBSS revision = 4ea20800
<7>[ 1.374725] TxFifo Empty intr disabled
<6>[ 1.374735] musb0: Enabled SW babble control
<7>[ 1.375031] musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
<7>[ 1.375049] musb-hdrc: MHDRC RTL version 2.0
<7>[ 1.375060] musb-hdrc: setup fifo_mode 4
<7>[ 1.375088] musb-hdrc: 28/31 max ep, 16384/16384 memory
<7>[ 1.375100] musb-hdrc.0: bulk split disabled
<7>[ 1.375108] musb-hdrc.0: bulk combine disabled
<6>[ 1.375528] musb-hdrc musb-hdrc.0: USB OTG mode controller at e083c000 using DMA, IRQ 18
<6>[ 1.375770] musb-hdrc musb-hdrc.1: dma type: dma-cppi41
<6>[ 1.375910] MUSB1 controller's USBSS revision = 4ea20800
<7>[ 1.375924] TxFifo Empty intr disabled
<6>[ 1.375933] musb1: Enabled SW babble control
<7>[ 1.376208] musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
<7>[ 1.376224] musb-hdrc: MHDRC RTL version 2.0
<7>[ 1.376234] musb-hdrc: setup fifo_mode 4
<7>[ 1.376258] musb-hdrc: 28/31 max ep, 16384/16384 memory
<7>[ 1.376268] musb-hdrc.1: bulk split disabled
<7>[ 1.376276] musb-hdrc.1: bulk combine disabled
<6>[ 1.376344] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
<7>[ 1.376426] drivers/usb/core/inode.c: creating file 'devices'
<7>[ 1.376451] drivers/usb/core/inode.c: creating file '001'
<6>[ 1.376471] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 1
<7>[ 1.376501] musb-hdrc musb-hdrc.1: supports USB remote wakeup
<7>[ 1.376603] usb usb1: default language 0x0409
<7>[ 1.376636] usb usb1: udev 1, busnum 1, minor = 0
<6>[ 1.376647] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
<6>[ 1.376660] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
<6>[ 1.376672] usb usb1: Product: MUSB HDRC host driver
<6>[ 1.376682] usb usb1: Manufacturer: Linux 3.2.0-00244-gcf99001-dirty musb-hcd
<6>[ 1.376694] usb usb1: SerialNumber: musb-hdrc.1
<7>[ 1.377001] usb usb1: usb_probe_device
<7>[ 1.377017] usb usb1: configuration #1 chosen from 1 choice
<7>[ 1.377061] usb usb1: adding 1-0:1.0 (config #1, interface 0)
<7>[ 1.377191] hub 1-0:1.0: usb_probe_interface
<7>[ 1.377204] hub 1-0:1.0: usb_probe_interface - got id
<6>[ 1.377218] hub 1-0:1.0: USB hub found
<6>[ 1.377242] hub 1-0:1.0: 1 port detected
<7>[ 1.377252] hub 1-0:1.0: standalone hub
<7>[ 1.377261] hub 1-0:1.0: individual port power switching
<7>[ 1.377271] hub 1-0:1.0: no over-current protection
<7>[ 1.377280] hub 1-0:1.0: Single TT
<7>[ 1.377291] hub 1-0:1.0: TT requires at most 8 FS bit times (666 ns)
<7>[ 1.377302] hub 1-0:1.0: power on to power good time: 10ms
<7>[ 1.377324] hub 1-0:1.0: local power source is good
<7>[ 1.377337] hub 1-0:1.0: enabling power on all ports
<7>[ 1.377535] drivers/usb/core/inode.c: creating file '001'
<6>[ 1.377697] musb-hdrc musb-hdrc.1: USB Host mode controller at e083e800 using DMA, IRQ 19
We also applied this patch:
diff --git a/arch/arm/mach-omap2/omap_phy_internal.c b/arch/arm/mach-omap2/omap_phy_internal.c index 13bfef3..e41b224 100644 --- a/arch/arm/mach-omap2/omap_phy_internal.c +++ b/arch/arm/mach-omap2/omap_phy_internal.c @@ -288,8 +288,17 @@ void ti81xx_musb_phy_power(u8 id, u8 on , bool wkup) TI816X_USBPHY0_NORMAL_MODE; usbphycfg &= ~TI816X_USBPHY_REFCLK_OSC; } else if (cpu_is_am33xx()) { - usbphycfg &= ~(USBPHY_CM_PWRDN | USBPHY_OTG_PWRDN); - usbphycfg |= (USBPHY_OTGVDET_EN | USBPHY_OTGSESSEND_EN); + usbphycfg &= ~(USBPHY_CM_PWRDN | USBPHY_OTG_PWRDN | USBPHY_OTGVDET_EN); + + /* HACK: If USB0 port is in host-only mode, clear its + * USBPHY_OTGVDET_EN bit to ignore first VBUS sensing. + * Change 0 to 1 if USB1 port is in host-only mode. + */ + if (id == 0) + usbphycfg |= USBPHY_OTGSESSEND_EN; + else + usbphycfg |= (USBPHY_OTGVDET_EN | USBPHY_OTGSESSEND_EN); + usbwkupctrl = AM33XX_USB_WKUP_CTRL_DISABLE; } } else {
Please help.
Thank you very much