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.saj...@samsung.com>
> Signed-off-by: Vivek Gautam <gautam.vi...@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
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to