USB Device Endpoint Number

Showing results for 
Search instead for 
Did you mean: 

USB Device Endpoint Number

Contributor I

Hi ,

I'm working on i.MX6 Dual Solidrun's SOM + Hummingboard and build Linux Kernel 4.9.102 as my system.

I'm trying to designed OTG device mode using GadgetFS.

I could make /dev/gadget/2184000.usb. and ep0in/out ~ ep7in/out.

EP 2 and EP6 work using /dev/ep2out and /dev/ep6in.

I can make that my board send and recevice usb data with PC Applicaiion.

However My host side APP Program use Endpoint 2,4,6,8.

So I have to make /dev/ep8out  device file.

I could found that the enpoint device files are made in /drivers/usb/gadget/legacy/inode.c

And I could found that number of enpoint value is in /drivers/usb/chipidea/core.c as below.


reg = hw_read(ci, CAP_DCCPARAMS, DCCPARAMS_DEN) >>
        ci->hw_ep_max = reg  * 2;   /* cache hw ENDPT_MAX */



I could read the value of ci->hw_ep_max is 0x08.

So It can make only 16 nodes for enpoint device file (ep0in ~ ep7in 8ea and ep0out ~ ep7out 8ea)


Device Controller Capability Parameters

DEN -> Device Enpoint Number


Is it hardware specification of I.MX6 ?

How can I make /dev/ep8out file for Endpoint 8 ?

I have assigned EP address 0x08 to ep7out or ep6out But it didn't work.

Maybe Endpoints are mapped to each /dev/#ENDPOINT files.

Please let me know how can I do for it.


Thanks in Advanced!

0 Kudos
1 Reply

Contributor III

Hi @uranos74 did you get answer to this?

0 Kudos