[Gta04-owner] USB HOST(tested on 3.4) wrong power budget?

Denis 'GNUtoo' Carikli GNUtoo at no-log.org
Sun Dec 16 17:35:43 CET 2012


Hi,

With some help and some research I was able to test USB host on 3.4.

So I do that:
  echo host > /sys/devices/platform/musb-omap2430/musb-hdrc/mode
And that activates USB host.
  echo otg > /sys/devices/platform/musb-omap2430/musb-hdrc/mode
or:
  echo peripheral > /sys/devices/platform/musb-omap2430/musb-hdrc/mode
Desactivates it...

I've also that configuration:
CONFIG_USB_GADGET_VBUS_DRAW=100

However the issue is that most of the device won't work.
For instance I've a mass storage USB key that eat 200mA...

Changing CONFIG_USB_GADGET_VBUS_DRAW to 500mA didn't made it work
yet.... but commenting that with if 0:
#if 0
                /* Rule out configs that draw too much bus current */
                if (c->desc.bMaxPower * 2 > udev->bus_mA) {
                        insufficient_power++;
                        continue;
                }
#endif
in drivers/usb/core/generic.c made the USB key work.
That means that the GTA04 can probably deliver 200mA(the manual says
100mA) or maybe a little bit more...

however that modification has some drawbacks...
With a 500mA device:
 * the device can't be listed anymore with lsusb(before it could)
 * no message appear in dmesg( before a message that the device got
   rejected appeared)
 * the device still doesn't work(like before, there is probably nothing
   that we can do about it beside using a powered USB hub, I've tested
   it and it works that way).
=> the VBUS voltage probably drops in that case.

So here are the questions:
 * what's the maximum current that the VBUS can provide? 200mA? 250mA?
   more(but less than 500mA) ?
 * is it worth to look where the power budget of the USB is defined?
   (that is to say look for a better place than this hack.).
 * maybe the *2 in the check is wrong?

Denis.


More information about the Gta04-owner mailing list