Is it possible to force a USB device port to "low speed"?

I am running an at91rm9200 based board with Linux 2.6.16.

We suspect we might be having some problems with a radiation source of around 
13MHz that might be causing problems with the 12Mbps full speed USB, we'd like 
to try running it at the 1.5Mbps speed to see if this fixes the problem (and 
confirms our suspicions).

As a quick test I tried moving the pull-up resistor to the D- line, but that 
doesn't work and the host doesn't recognise the device at all.

I looked at some of the platform specific code and noticed that it checks to 
see if the device is configured as "full speed". Is there a particular reason 
for this?

e.g. drivers/usb/gadget/at91_udc.c

         if (!driver
                         || driver->speed != USB_SPEED_FULL
                         || !driver->bind
                         || !driver->unbind
                         || !driver->setup) {
                 DBG("bad parameter.\n");
                 return -EINVAL;
         }

Can I set to this to USB_SPEED_LOW without creating other issues?
e.g. at this point?
                         /* enable ep0 */
                         at91_udp_write(AT91_UDP_CSR(0), AT91_UDP_EPEDS | 
AT91_UDP_EPTYPE_CTRL);
                         udc->gadget.speed = USB_SPEED_FULL;
                         udc->suspended = 0;
                         at91_udp_write(AT91_UDP_IER, AT91_UDP_EP(0));

regards,

Aras Vaichas

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to