According to the i.MX 8M Plus reference manual (Rev 1), 11.2.1.2, the USB controller "Supports four programmable, bidirectional USB endpoints".
However, if I read address 0x3810c14c (GHWPARAMS3), I read the value 0x08210085. This would indicate that DWC_USB3_NUM_EPS is 16 and DWC_USB3_NUM_IN_EPS is 8.
This is also consistent with my testing. I have tried to enumerate a Function FS device with varying number of endpoints. I am able to enumerate with up to 7 IN and 7 OUT endpoints. Anything more than that causes an error. Given that the bidirectional control endpoint 0 will always occupy one IN/OUT endpoint pair, this seems to be in line with the values I read from the register.
Is the data sheet wrong? Do I have to worry that newer revisions of the chip will be limited to 4 bidirectional endpoints?
Hello
Your findings are correct, it does seems that there is an error in the reference Manual, I'll report this to the documentation team.
It won't have endpoints reduced.
Thank you for sharing,
Best regards,
Aldo.