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.

AM69A: Design help on using AM69 as USB 3.0 peripheral device.

Part Number: AM69A
Other Parts Discussed in Thread: SK-AM69

Hello,

I've been working on making a custom board with AM69A. And I would like to set the AP as USB 3.0 device(peripheral) mode so that I can transfer message in high bps.

According to the TRM document, the AP's USB 3.0 interface supports DRD(Dual Role) feature. I got some questions relate to this feature :  
1. Does the Linux driver support DRD feature?  
    1. I conducted some test with the SK-AM69. But It seems like C type port on the board does not support DRD at HW level. (For the test procedure, check below)  
       And also user manual says that C type port is DFP only.  
2. If the driver supports DRD feature, how the HW need to be designed?
    2. SK-AM69 HW design :  
           AP -> USB Hub -> C type connector  
    3. Other designs as reference :  
           AP -> C type connector  
           AP -> additional IC that detect CC pin -> C type connector  
3. Requesting a document about how to use this feature on Linux.  

Test procedure I did on SK-AM69:  
1. Change device tree  
Set dr_mode to "peripheral" on k3-am69-sk.dts  

image.png
2. Run scripts & test program

script:

#!/bin/bash
CONFIGFS_HOME=/home/root/usb-test

modprobe configfs
modprobe usb_f_fs
modprobe libcomposite

# Mount configfs
mount none $CONFIGFS_HOME -t configfs

# Generate usb setting
mkdir $CONFIGFS_HOME/usb_gadget/g1
cd $CONFIGFS_HOME/usb_gadget/g1

# echo 0x0300 > bcdUSB
echo 0x1d6b > idVendor
echo 0x0104 > idProduct

mkdir strings/0x409

echo 6767 > strings/0x409/serialnumber
echo "Test" > strings/0x409/manufacturer
echo "AM69" > strings/0x409/product

mkdir configs/c.1
mkdir configs/c.1/strings/0x409

echo "config" > configs/c.1/strings/0x409/configuration

mkdir functions/ffs.usb0 # usb_f_ffs
ln -s functions/ffs.usb0 configs/c.1

mkdir /home/root/ffs
mount usb0 ffs -t functionfs
cd /home/root/ffs

3. Connect Host PC with to the board. (Type A to C)  
Nothig showed up on Host PC. (used lsusb)

Thanks.  
If there are any questions, please let me know.