bcmstb: Migrate CONFIG_CMD_EXT[24]
[oweals/u-boot.git] / include / usb.h
index bcad552f85f033009a3a436c9b0e593501ffa0bd..fa9e09607e2c614ea06265ea67f51b6c040e22d3 100644 (file)
@@ -103,7 +103,7 @@ enum {
  */
 struct usb_device {
        int     devnum;                 /* Device number on USB bus */
-       int     speed;                  /* full/low/high */
+       enum usb_device_speed speed;    /* full/low/high */
        char    mf[32];                 /* manufacturer */
        char    prod[32];               /* product */
        char    serial[32];             /* serial number */
@@ -242,6 +242,12 @@ int usb_host_eth_scan(int mode);
 
 #ifdef CONFIG_USB_KEYBOARD
 
+/*
+ * USB Keyboard reports are 8 bytes in boot protocol.
+ * Appendix B of HID Device Class Definition 1.11
+ */
+#define USB_KBD_BOOT_REPORT_SIZE 8
+
 int drv_usb_kbd_init(void);
 int usb_kbd_deregister(int force);
 
@@ -263,6 +269,7 @@ int usb_bulk_msg(struct usb_device *dev, unsigned int pipe,
                        void *data, int len, int *actual_length, int timeout);
 int usb_int_msg(struct usb_device *dev, unsigned long pipe,
                void *buffer, int transfer_len, int interval, bool nonblock);
+int usb_lock_async(struct usb_device *dev, int lock);
 int usb_disable_asynch(int disable);
 int usb_maxpacket(struct usb_device *dev, unsigned long pipe);
 int usb_get_configuration_no(struct usb_device *dev, int cfgno,
@@ -785,6 +792,16 @@ struct dm_usb_ops {
         * in a USB transfer. USB class driver needs to be aware of this.
         */
        int (*get_max_xfer_size)(struct udevice *bus, size_t *size);
+
+       /**
+        * lock_async() - Keep async schedule after a transfer
+        *
+        * It may be desired to keep the asynchronous schedule running even
+        * after a transfer finishes, usually when doing multiple transfers
+        * back-to-back. This callback allows signalling the USB controller
+        * driver to do just that.
+        */
+       int (*lock_async)(struct udevice *udev, int lock);
 };
 
 #define usb_get_ops(dev)       ((struct dm_usb_ops *)(dev)->driver->ops)