USB Device Endpoint Number

cancel
Showing results for 
Search instead for 
Did you mean: 

USB Device Endpoint Number

384 Views
uranos74
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) >>
                __ffs(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

205 Views
rajvikamdar
Contributor III

Hi @uranos74 did you get answer to this?

0 Kudos