diff options
author | Wolfgang Denk <wd@pollux.denx.de> | 2006-06-14 17:45:53 +0200 |
---|---|---|
committer | Wolfgang Denk <wd@pollux.denx.de> | 2006-06-14 17:45:53 +0200 |
commit | 16c8d5e76ae0f78f39a60608574adfe0feb9cc70 (patch) | |
tree | 3b5d071b5fd9f34044ff154437f92149edf6105f /drivers/usbdcore_omap1510.c | |
parent | 81d72d7e2e7996c6c4e60985dbcc84afe5ed816c (diff) | |
download | u-boot-imx-16c8d5e76ae0f78f39a60608574adfe0feb9cc70.zip u-boot-imx-16c8d5e76ae0f78f39a60608574adfe0feb9cc70.tar.gz u-boot-imx-16c8d5e76ae0f78f39a60608574adfe0feb9cc70.tar.bz2 |
Various USB related patches
- Add support for mpc8xx USB device.
- Add support for Common Device Class - Abstract Control Model USB console.
- Add support for flow control in USB slave devices.
- Add support for switching between gserial and cdc_acm using environment.
- Minor changes to usbdcore_omap1510.c usbdcore_omap1510.h
- Update usbcore slightly to ease host enumeration.
- Fix non-portable endian problems in usbdcore and usbdcore_ep0.
- Add AdderUSB_config as a defconfig to enable usage of the USB console
by default with the Adder87x U-Boot port.
Patches by Bryan O'Donoghue <bodonoghue@codehermit.ie>, 29 May 2006
Diffstat (limited to 'drivers/usbdcore_omap1510.c')
-rw-r--r-- | drivers/usbdcore_omap1510.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/drivers/usbdcore_omap1510.c b/drivers/usbdcore_omap1510.c index 1d54a63..83d898f 100644 --- a/drivers/usbdcore_omap1510.c +++ b/drivers/usbdcore_omap1510.c @@ -645,7 +645,7 @@ static void omap1510_udc_state_changed (void) static void omap1510_udc_setup (struct usb_endpoint_instance *endpoint) { UDCDBG ("-> Entering device setup"); - + do { const int setup_pktsize = 8; unsigned char *datap = @@ -1517,4 +1517,31 @@ void udc_startup_events (struct usb_device_instance *device) udc_enable (device); } +/** + * udc_irq - do pseudo interrupts + */ +void udc_irq(void) +{ + /* Loop while we have interrupts. + * If we don't do this, the input chain + * polling delay is likely to miss + * host requests. + */ + while (inw (UDC_IRQ_SRC) & ~UDC_SOF_Flg) { + /* Handle any new IRQs */ + omap1510_udc_irq (); + omap1510_udc_noniso_irq (); + } +} + +/* Flow control */ +void udc_set_nak(int epid) +{ + /* TODO: implement this functionality in omap1510 */ +} + +void udc_unset_nak (int epid) +{ + /* TODO: implement this functionality in omap1510 */ +} #endif |