I am working with a team designing a PCB that works with the Raspberry Pi Compute Module 3 card. We are having a bit of trouble with the USB ports. The schematic of the USB portion is somewhat similar to the Development board. We are using a 3 port TUSB2036 connected to one of the FSUSB42UMX parts.
The USB hub recognizes the devices (I have tried multiple), but I am unable to mount or interact with them beyond lsusb. Checking the dmesg logs points to this error
[ 1641.913300] usb 1-1.2: rejected 1 configuration due to insufficient available bus power
[ 1641.913310] usb 1-1.2: no configuration chosen from 1 choice
[ 1641.913319] usb 1-1.2: No support over 100mA
This problem does not occur on the Raspberry Pi Compute Module I/O Development Board.
I have added max_usb_current=1 to the config.txt file.
I have also tried echo 1 > /sys/bus/usb/devices/1-1.2/bConfigurationValue both with and without sudo, but I get a permissions error on both.
Checking the raspberry/linux github I can see what is causing the error. My more experienced colleague surmises it's an firmware issue where Raspbian has a hard limit on how much current it offers each USB device. The USB drivers of Raspbian is assuming things about the power consumption of each USB port/device that is not true for our PCB. My questions are as follows
Is this theory reasonable? Is there a good way to check portions of the USB driver like values of variables like
udev->bus_mA,usb_get_max_power(udev, c),hdev->bus_mA, etc. ?Are there any configuration options I'm missing that could I could use to test, ignore, or solve the problem?
Are there driver alternatives where we could bypass this issue? I have been looking at rsta2/usb driver as an alternative.
Any resources I should look over to educate myself more?
Please let me know if you require any more information, and thanks for your time.