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.

DRA7xx EVM Revision E :USB issue

Hello,
          I am facing the issue in usb 2.0.When I am connecting the optical mouse I am getting connecting-disconnecting logs continously. Logs are as follows-

[13681.207519] usb 1-1: USB disconnect, device number 3
[13682.708007] usb 1-1: new low-speed USB device number 4 using xhci-hcd
[13682.735382] usb 1-1: New USB device found, idVendor=046d, idProduct=c05a
[13682.742553] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[13682.750152] usb 1-1: Product: USB Optical Mouse
[13682.755004] usb 1-1: Manufacturer: Logitech
[13682.760101] usb 1-1: ep 0x81 - rounding interval to 64 microframes, ep desc says 80 microframes
[13682.777496] input: Logitech USB Optical Mouse as /devices/ocp.2/488c0000.omap_dwc3/488d0000.dwc3/xhci-hcd.1.auto/usb1/1-1/1-1:1.0/input/input1
[13682.791900] hid-generic 0003:046D:C05A.0002: input: USB HID v1.11 Mouse [Logitech USB Optical Mouse] on usb-xhci-hcd.1.auto-1/input0

[13742.811004] usb 1-1: USB disconnect, device number 4
[13744.309570] usb 1-1: new low-speed USB device number 5 using xhci-hcd
[13744.336853] usb 1-1: New USB device found, idVendor=046d, idProduct=c05a
[13744.343994] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[13744.351654] usb 1-1: Product: USB Optical Mouse
[13744.356475] usb 1-1: Manufacturer: Logitech
[13744.361450] usb 1-1: ep 0x81 - rounding interval to 64 microframes, ep desc says 80 microframes
[13744.379791] input: Logitech USB Optical Mouse as /devices/ocp.2/488c0000.omap_dwc3/488d0000.dwc3/xhci-hcd.1.auto/usb1/1-1/1-1:1.0/input/input2
[13744.394683] hid-generic 0003:046D:C05A.0003: input: USB HID v1.11 Mouse [Logitech USB Optical Mouse] on usb-xhci-hcd.1.auto-1/input0

The 1st logs comes when we connect any usb and 2nd comes when we disconnect any .In case of pen drive when I connect it , I am getting 1st(connecting) logs and when I disconnect it, I receive 2nd(disconnecting) logs.

But when I connect any mouse I am getting 1st and 2nd(connecting-disconnecting) both logs continously.

Thanks
Abhi

  • Hi Abhi,

    Are you using android or glsdk ? If so on which version are you observing this behaviour? Have you done any changes to the kernel?

    We were unable to recreate your problem on our platforms so please check if your otg cable and mouse are working correctly on another platform. Have you tried with another mouse?

    Regards,

    Boyko

  • Hi Boyko,
                      I am using glsdk and I had already tried with multiple mouse and otg cables but behaviour is same.One more thing I have to mention that I have gone through the Errata and found something related to usb 2.0.I am pasting that part..

    2.3 USB2.0 false detection of disconnect condition

    CRITICALITY
    Low


    DESCRIPTION
    Per the standard, the 'Envelope detector' in the USB2.0 PHY must indicate High Speed disconnection
    when the amplitude of the differential signal at the downstream facing driver's connector is greater than or
    equal to 625 mV, and it must not be indicated when the signal amplitude is less than or equal to 525 mV
    at our connector. The default configuration of the USB1/USB2 phy is such that the detector circuit is
    monitoring the during the entire SOF frame and not just the last 8b portion of the extended EOP as
    indicated in the standard.
    Due to this constant monitoring, it is possible that the PHY may falsely indicate disconnect condition due
    to reflections on the PCB. These reflections could exceed the disconnect thresholds if TI PCB layout
    guidelines for USB are not strictly followed.

    WORKAROUND
    SW Workaround: During USB2.0 PHY initialization, configure: bit 31 of 0x4A08 404C (USB1) or 0x4A08
    504C (USB2) to =1b. This will limit detection window to the proper time and prevent false disconnect. TI
    PCB layout guidelines for USB should also be strictly followed to minimize reflections to within the
    thresholds defined in the standard. See device Data Manual for details.

    When I am trying to read  the register (0x4A08 504C) I am getting this value 0x0000000e.So a/c to errata to set 31st  bit of this register, I am trying to write 0x800000e on this manually on kernel.But after writing if I read the value the register I am getting this 0x8800000e and issue remains the same.Please tell me some solution.

    Regards,
    Abhi