summaryrefslogtreecommitdiffstats
path: root/drivers/usbdcore_omap1510.c
diff options
context:
space:
mode:
authorWolfgang Denk <wd@pollux.denx.de>2006-06-14 17:45:53 +0200
committerWolfgang Denk <wd@pollux.denx.de>2006-06-14 17:45:53 +0200
commit16c8d5e76ae0f78f39a60608574adfe0feb9cc70 (patch)
tree3b5d071b5fd9f34044ff154437f92149edf6105f /drivers/usbdcore_omap1510.c
parent81d72d7e2e7996c6c4e60985dbcc84afe5ed816c (diff)
downloadtalos-obmc-uboot-16c8d5e76ae0f78f39a60608574adfe0feb9cc70.tar.gz
talos-obmc-uboot-16c8d5e76ae0f78f39a60608574adfe0feb9cc70.zip
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.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/drivers/usbdcore_omap1510.c b/drivers/usbdcore_omap1510.c
index 1d54a63575..83d898f0de 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
OpenPOWER on IntegriCloud