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.

Linux/AM5718: USB 3.0 unplug issue

Part Number: AM5718


Tool/software: Linux

Hello Everyone,

We are using AM5718 SoC based custom board for our final application. We are using Function FS (user mode driver) for USB communication. We are using USB device mode only. It works nicely in USB2.0 mode but with USB3.1 Gen1 (USB3.0) mode, we are facing following issue.

At the starting of the user mode application, USB device is enumerated on Host PC every time but if we disconnect and connect device again it is not enumerated. Note that this only happens in USB3.1 Gen1 mode. To debug this issue further, we used Lecroy USB analyzer. We noticed that when in USB3.1 Gen1 mode, after device enumeration completes, Host puts device in U3 mode. If device is disconnected when in U3 mode, it is unable to enumerate again. If we run some application in which we transfers data on device so that device does not enter U3 mode and if we disconnect while transfer is in progress, device is enumerated again successfully when reconnected.

We would like to have your input to solve this issue further. We greatly appreciate your feedback.

Thanks in advance.

Nikunj Patel

  • The USB experts have been notified. They will respond here.
  • Nikunj,

    Please provide the USB portion of your schematics, especially the section which shows how the VBUS line is fed from the USB receptacle to the SoC.
  • Hello Everyone;

    Please check above snapshots of schematic. please let us know if required more information.

    Thanks & Best Regards;

    Nikunj Patel

  • Where are signals VBUS0 and VBUS0_S connected to? I need to know how the VBUS pin of the P3 is connected to the SoC. Please provide all the details.

    Side comment: I see the two outputs of RYC8220 are VBUS0_S and VBUS1, are you trying to use a single power switch for two usb ports? If so, it is a very bad idea.
  • Sorry for late reply;

    Please check the above Schematic portion of VBUS0 connection.

    We had also added the below lines inside the dts file.

    extcon_usb1: tps659038_usb {
                compatible = "ti,palmas-usb-vid";
                ti,enable-vbus-detection;
            };


    &usb1 {
        dr_mode = "peripheral";
        status = "okay";
        };


    &omap_dwc3_1 {
        extcon = <&extcon_usb1>;
     };

    Thanks & Best Regards;
    Nikunj Patel

  • Nikunj Patel said:

    extcon_usb1: tps659038_usb {
                compatible = "ti,palmas-usb-vid";
                ti,enable-vbus-detection;
            };

    I guess the signal GPIO_USB2_VBUS_DET goes to a GPIO pin on AM57x? then you need to specify that GPIO in the extcon_usb1 node above.

    It seems your USB design is very close to TI AM571x IDK EVM, so please review the EVM schematics and am57x-beagle-x15-common.dtsi for how the VBUS signal is fed to the SoC.

  • Hello Bin Liu;
    Thanks for your reply;

    Yes in TI EVM this pin connected to the AM5718 GPIO.

    but in our board this pin does not connect to any GPIO pin of AM5718.

    Thanks
  • Nikunj,

    Please follow the EVM design to assign an AM57x GPIO pin to connect to your GPIO_USB2_VBUS_DET signal and specify the GPIO in the extcon_usb1 node in the DTS file.

    The USB driver has to know the disconnect from the USB host by receiving the GPIO event.