aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorVivek Gautam2013-04-12 16:34:38 +0530
committerMarek Vasut2013-05-05 23:54:22 +0200
commit6497c66704d03956e7ea49b54fcaa38740736416 (patch)
tree409cd69a5d470bb5dd867d05df9b90aa82313e44 /include
parent289f3cb28a3916b6c4c770db9a88463884be5b6c (diff)
USB: SS: Add support for Super Speed USB interface
This adds usb framework support for super-speed usb, which will further facilitate to add stack support for xHCI. Signed-off-by: Vikas C Sajjan <vikas.sajjan@samsung.com> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
Diffstat (limited to 'include')
-rw-r--r--include/usb.h6
-rw-r--r--include/usb_defs.h24
2 files changed, 29 insertions, 1 deletions
diff --git a/include/usb.h b/include/usb.h
index d79c8658840..d7b082d9f46 100644
--- a/include/usb.h
+++ b/include/usb.h
@@ -76,6 +76,12 @@ struct usb_interface {
unsigned char act_altsetting;
struct usb_endpoint_descriptor ep_desc[USB_MAXENDPOINTS];
+ /*
+ * Super Speed Device will have Super Speed Endpoint
+ * Companion Descriptor (section 9.6.7 of usb 3.0 spec)
+ * Revision 1.0 June 6th 2011
+ */
+ struct usb_ss_ep_comp_descriptor ss_ep_comp_desc[USB_MAXENDPOINTS];
} __attribute__ ((packed));
/* Configuration information.. */
diff --git a/include/usb_defs.h b/include/usb_defs.h
index c0022e6759f..6ce67914071 100644
--- a/include/usb_defs.h
+++ b/include/usb_defs.h
@@ -215,6 +215,8 @@
#define USB_PORT_FEAT_POWER 8
#define USB_PORT_FEAT_LOWSPEED 9
#define USB_PORT_FEAT_HIGHSPEED 10
+#define USB_PORT_FEAT_FULLSPEED 11
+#define USB_PORT_FEAT_SUPERSPEED 12
#define USB_PORT_FEAT_C_CONNECTION 16
#define USB_PORT_FEAT_C_ENABLE 17
#define USB_PORT_FEAT_C_SUSPEND 18
@@ -231,8 +233,20 @@
#define USB_PORT_STAT_POWER 0x0100
#define USB_PORT_STAT_LOW_SPEED 0x0200
#define USB_PORT_STAT_HIGH_SPEED 0x0400 /* support for EHCI */
+#define USB_PORT_STAT_FULL_SPEED 0x0800
+#define USB_PORT_STAT_SUPER_SPEED 0x1000 /* support for XHCI */
#define USB_PORT_STAT_SPEED \
- (USB_PORT_STAT_LOW_SPEED | USB_PORT_STAT_HIGH_SPEED)
+ (USB_PORT_STAT_LOW_SPEED | USB_PORT_STAT_HIGH_SPEED | \
+ USB_PORT_STAT_FULL_SPEED | USB_PORT_STAT_SUPER_SPEED)
+
+/*
+ * Additions to wPortStatus bit field from USB 3.0
+ * See USB 3.0 spec Table 10-10
+ */
+#define USB_PORT_STAT_LINK_STATE 0x01e0
+#define USB_SS_PORT_STAT_POWER 0x0200
+#define USB_SS_PORT_STAT_SPEED 0x1c00
+#define USB_PORT_STAT_SPEED_5GBPS 0x0000
/* wPortChange bits */
#define USB_PORT_STAT_C_CONNECTION 0x0001
@@ -241,6 +255,14 @@
#define USB_PORT_STAT_C_OVERCURRENT 0x0008
#define USB_PORT_STAT_C_RESET 0x0010
+/*
+ * Addition to wPortChange bit fields form USB 3.0
+ * See USB 3.0 spec Table 10-11
+ */
+#define USB_PORT_STAT_C_BH_RESET 0x0020
+#define USB_PORT_STAT_C_LINK_STATE 0x0040
+#define USB_PORT_STAT_C_CONFIG_ERROR 0x0080
+
/* wHubCharacteristics (masks) */
#define HUB_CHAR_LPSM 0x0003
#define HUB_CHAR_COMPOUND 0x0004