AnsweredAssumed Answered

Issues getting the 2nd USB Port Up?

Question asked by Adam Garrison on Mar 9, 2015
Latest reply on Apr 1, 2015 by CarlosCasillas

We are having a few issues in getting the 2nd USB port up.

I’m trying to get the USB On-The-Go Port 2 to initialize as a Device (not a host).  So far I think I’m missing something in the initialization process and I’m a little lost on HOW to initialize the ports as this will help me identify where I need to make my corrections.


So far I’ve done the following:


  1. 1. Disable the usb charger detector
  2. a.      Reg 0x020C8210

i.     setting bit 19 and 18 to 1

  1. 2. Powered up the 480Mz PLL
  2. a.      Reg 0x020C8024

i.     bit 6 to 1

  1. 3. Enabled usboh3 clock
  2. a.      Reg 0x020C4080

i.     setting bit 0 and 1 to 1

  1. 4. Started Gate UTMI Clocks
  2. a.      Reg 0x020CA034

i.     setting bit 30 to 0

  1. 5. Set the OTG Device Mode
  2. a.      Stopped Controller

i.     Reg 0x02184340

  1. 1.      Bit 0 = 0
  2. b.      Performed core reset

i.     Reg 0x02184340

  1. 1.      Bit 1 = 1
  2. a.      Wait for reset to complete (Bit 1 = = 0)
  3. c.      Reset USB OTG PHY clock

i.     Reg 0x020CA030

  1. 1.      Bit 30 = 1
  2. d.      Powered PHY backup

i.     Reg 0x020CA000

  1. 1.      Cleared all bits
  2. e.      Set USB Mode to Device

i.     Reg 0x021843A8

  1. 1.      Bit 0 = 0
  2. 2.      Bit 1 = 1
  3. f.       Disabled Setup Lockout in USB Mode

i.     Reg 0x021843A8

  1. 1.      Bit 3 = 1


  This process works and USB OTG Port 1 works but Port 2 I don’t get any response from the device when my host request data.  Why?


Note that we have a fully functional driver for USB1.


          We are using that driver but changing the base address to be USB2.

          So if the bits are all the same between them we would have assumed it should just work.

          2 KNOWN differences are

ISR vector

Base address of register stack.


          So going from a perfectly working composite device with 3 functions (ACM, Mass storage, RNDIS) to it does nothing seems like there is just one little thing as opposed to           an entire driver write from ground up problem.


          This is why we are reaching out because there must be something else different about USB2 from USB1 to make a perfectly good driver non responsive.


          This is a peripheral setup issue not a driver issue I guess is what I’m saying.  Am I on the right track?

Thank you,