SK-AM62A-LP: Configuration steps for using two ports as a device (function)

Part Number: SK-AM62A-LP

Tool/software:

Hi experts,

The original thread mentioned that two ports can be used as a Device (Function), but is there any sample code?
The purpose of my question is to find sample code that actually configures two USB ports as a Device (Function).

One of the ports on the SK-AM62A-LP is Type-A (HOST), so SDK/sample code for other hardware would be fine.

For the SK-AM62A-LP, could you please tell me how to configure two Device (Function) ports?
The Linux SDK manual below seems to cover kernel configuration settings, but it doesn't seem to provide any specific instructions.
3.2.2.20. USB — Processor SDK AM62Ax Documentation

Best regards,
O.H

  • Hi O.H,

    For the SK-AM62A-LP, could you please tell me how to configure two Device (Function) ports?

    The SK-AM62A-LP cannot be used to configure both USB ports to device mode, since the hardware design for USB1 port is for host-only mode.

    As I mentioned in the previous E2E thread, you can use USB gadget configfs to configure the USB device mode function. Please refer to kernel doc for reference.

    <kernel src>/Documentation/usb/gadget_configfs.rst

  • Hi Bin Liu,

    Thank you for your reply.

    I'm sorry, but I'm not very knowledgeable about USB development, so I don't fully understand everything yet.

    Other EVMs are fine, but are there any products that can configure two USB ports in Device mode?
    If not, do I need to build a custom board to configure and evaluate two USB ports in Device mode?

    Best regards,
    O.H

  • Hi O.H,

    The SK-AM62A-LP is the only EVM for AM62Ax devices. There is no other AM62Ax EVM that I am aware of.

    Using two dedicated USB ports for device mode is not a very common usecase, unless you want to do usb bridging kind of projects. But if you just want to use multiple USB gadget functions connecting to a single USB host, you can add all these USB gadget functions into a single AM62Ax USB port, you don't have to use dual USB ports.

  • Hi Bin Liu,

    Thank you for your response.

    Sorry, I didn't provide enough information.

    The SK-AM62A-LP is the only EVM for AM62Ax devices. There is no other AM62Ax EVM that I am aware of.

    It's not limited to AM62x; AMx, TDAx, and DRAx are also selectable. Are there any EVMs and SDKs that can achieve this?

    Using two dedicated USB ports for device mode is not a very common usecase, unless you want to do usb bridging kind of projects. But if you just want to use multiple USB gadget functions connecting to a single USB host, you can add all these USB gadget functions into a single AM62Ax USB port, you don't have to use dual USB ports.

    We understand that this isn't a common usage, but it's necessary for the customer's application. In the past, customers have implemented this functionality by implementing an RTOS on the 66AK2G.

    Best regards,
    O.H

  • Hi O.H,

    The USB controllers on AM62Ax and 66AK2G are very similar, just different versions (and different USB PHY), so if your customer already has USB dual device ports implemented on 66AK2G, it should be very easy to migrate to AM62Ax.

  • Hi Bin Liu,

    I understood that there is no EVM that can evaluate two USB ports in device mode.

    If we will using FreeRTOS, we refer from the K2G driver.

    Best regards,
    O.H

  • Hi Bin Liu,

    Has anyone actually gotten this to work with any of TI's devices? Any SDK is not actual work?

    Best regards,
    O.H

  • Hi O.H,

    Yes, we have customers using it on different TI processors. And I personally tested it on multiple devices’ EVM with different versions of Linux SDK. 

    Though most of our EVM (if not all) design one usb port in dual-role mode and the other in host-only mode, I can make software changes to make the host-only port to work in usb device mode. So I have both usb port in device mode. But i cannot expose the software changes and test procedure, since it violates the usb spec, for people who is not familiar with usb, any mistake could damage the EVM. 

    the bottom line is the dual devices port mode should work on any Linux SDK as long as the single devices port mode works.