
Dear Vivek Gautam,
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
[...]
--- a/include/usb.h +++ b/include/usb.h @@ -67,6 +67,16 @@ struct devrequest { unsigned short length; } __attribute__ ((packed));
+struct usb_ep_desc {
- struct usb_endpoint_descriptor ep_desc;
- /*
* 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;
+};
/* Interface */ struct usb_interface { struct usb_interface_descriptor desc; @@ -75,7 +85,7 @@ struct usb_interface { unsigned char num_altsetting; unsigned char act_altsetting;
- struct usb_endpoint_descriptor ep_desc[USB_MAXENDPOINTS];
- struct usb_ep_desc ep_desc[USB_MAXENDPOINTS];
Do we really need this struct usb_ep_desc? Can we not just store the usb_ss_ep_comp_descriptor here as well?
} __attribute__ ((packed));
/* Configuration information.. */ diff --git a/include/usb_defs.h b/include/usb_defs.h index 0c78d9d..e2aaef3 100644 --- a/include/usb_defs.h +++ b/include/usb_defs.h @@ -203,6 +203,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 @@ -218,8 +220,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 @@ -228,6 +242,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