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.

About USB host mode in DM8127

Genius 3400 points

Hi all,
   Refer the design of IPNC 8127, we build our own board. when we config to host mode, it meet proble. 
      1)Using default config of IPNC8127, we can debug our board to device mode(slave), just like the IPNC8127 slave mode function. Of course, in our board, we must do some change.(USB_ID to disconnect; VBUS to connect to VBUSIN);


      2)But we try to config to Host USB mode, when insmod ti81xx.ko module, the informations are following:

kernle config:
<*> Support for Host-side USB
[*]USB device class-device (DEPRECATED)
<*>USB Monitor
<*>Inventra HIGHSpeed DUAL Role Controller(TI, ADI, ...)
<M> TI81XX
TI81XX usb connctor's ID pin controll (from usb connector)
Dirver Mode (Host mode)
<*> USB Mass Storage support

When insmod the ti81xx.ko, the information is following:

root@dm814x-evm:/opt/ipnc# insmod ti81xx.ko
USBSS revision 4ea2080b
registerd cppi-dma Intr @ IRQ 17
Cppi41 Init Done
musb-hdrc musb-hdrc.0: dma type: dma-cppi41
MUSB controller-0 revision 4ea20800
musb-hdrc musb-hdrc.0: MUSB HDRC host driver
musb-hdrc musb-hdrc.0: new USB bus registered, assigned bus number 1
usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: MUSB HDRC host driver
usb usb1: Manufacturer: Linux 2.6.37_DM8127_IPNC_3.00.00_2012-1026 musb-hcd
usb usb1: SerialNumber: musb-hdrc.0
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
musb-hdrc musb-hdrc.0: USB Host mode controller at c58b0000 using DMA, IRQ 18
musb-hdrc musb-hdrc.1: dma type: dma-cppi41
MUSB controller-1 revision 4ea20800
musb-hdrc musb-hdrc.1: MUSB HDRC host driver
musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 2
usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb2: Product: MUSB HDRC host driver
usb usb2: Manufacturer: Linux 2.6.37_DM8127_IPNC_3.00.00_2012-1026 musb-hcd
usb usb2: SerialNumber: musb-hdrc.1
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
musb-hdrc musb-hdrc.1: USB Host mode controller at c58b4800 using DMA, IRQ 19
root@dm814x-evm:/opt/ipnc#
hub 1-0:1.0: over-current change on port 1
hub 2-0:1.0: over-current change on port 1
hub 1-0:1.0: over-current change on port 1
hub 2-0:1.0: over-current change on port 1 #continuously print.

 

 


There are two differences between IPNC8127 and our board.
1)VBUS: Our board output 5V power supply, our board use it to Host USB; But Ipnc connect it to VBUSIN;
2)USB_ID:Our board force to low level; IPNC 8127 do not connect.(R278 is not jointing in fact.)

Anybody can give me some advices? Thanks a lot. 

  • Need TI enginers to help!

  •  I had resolved it because of the hardware connect. 

  • Hi Gomo,


    We're running into this "overcurrent" message as well.  Would you mind elaborating on what you had wrong, and what you did to fix it?


    Thank you!

    Jon

  • 1)VBUS:  USB0_VBUSIN connect to VBUS, USB1_VBUSIN  connect to 5V(If you only use one USB port);
    2)USB_ID: force to GND;

    you can try!

  • Hi gomo,

    Thanks for the quick reply -- I really appreciate it!

    By the way, what are you doing with USB_DRVVBUS? We're using this to enable power to the ports on our downstream hub.

    I notice that the processor is NOT asserting USB_DRVVBUS, so I mux'd this to the gpio and asserted the GPIO. The CPU stops spitting out the overrcurrent message when I "manually" drive that pin.

    After looking at the datasheet and TRM, I'm not clear under what condition USB_DRVVBUS should get asserted. I plan on diving in to the driver code to see what I could find. (I'll post back if I find anything helpful.)

    Thanks again!

    Jon

    Update:

    Looks like I had a silly mistake: omap_mux kernel arg for gpio0_7 was still in the bootloader, so it was overriding the DRVVBUS pin. 

    After going over the TRM and usb_musb.c, I gather that USBx_DRVVBUS should be asserted when the CPU is in host mode, which we now see after getting our connections straightened out.

    Well, at least it's documented here what happens (overcurrent message) when the 81xx is the host with device on the bus, but VBUSIN low. ;)