Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 562e7c71 authored by Tatyana Brokhman's avatar Tatyana Brokhman Committed by Greg Kroah-Hartman
Browse files

usb: usb3.0 ch9 definitions



Adding SuperSpeed usb definitions as defined by ch9 of the USB3.0 spec.
This patch is a preparation for adding SuperSpeed support to the gadget
framework.

Signed-off-by: default avatarTatyana Brokhman <tlinder@codeaurora.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 0a6a717c
Loading
Loading
Loading
Loading
+57 −1
Original line number Original line Diff line number Diff line
@@ -123,8 +123,23 @@
#define USB_DEVICE_A_ALT_HNP_SUPPORT	5	/* (otg) other RH port does */
#define USB_DEVICE_A_ALT_HNP_SUPPORT	5	/* (otg) other RH port does */
#define USB_DEVICE_DEBUG_MODE		6	/* (special devices only) */
#define USB_DEVICE_DEBUG_MODE		6	/* (special devices only) */


/*
 * New Feature Selectors as added by USB 3.0
 * See USB 3.0 spec Table 9-6
 */
#define USB_DEVICE_U1_ENABLE	48	/* dev may initiate U1 transition */
#define USB_DEVICE_U2_ENABLE	49	/* dev may initiate U2 transition */
#define USB_DEVICE_LTM_ENABLE	50	/* dev may send LTM */
#define USB_INTRF_FUNC_SUSPEND	0	/* function suspend */

#define USB_INTR_FUNC_SUSPEND_OPT_MASK	0xFF00

#define USB_ENDPOINT_HALT		0	/* IN/OUT will STALL */
#define USB_ENDPOINT_HALT		0	/* IN/OUT will STALL */


/* Bit array elements as returned by the USB_REQ_GET_STATUS request. */
#define USB_DEV_STAT_U1_ENABLED		2	/* transition into U1 state */
#define USB_DEV_STAT_U2_ENABLED		3	/* transition into U2 state */
#define USB_DEV_STAT_LTM_ENABLED	4	/* Latency tolerance messages */


/**
/**
 * struct usb_ctrlrequest - SETUP data for a USB device control request
 * struct usb_ctrlrequest - SETUP data for a USB device control request
@@ -675,6 +690,7 @@ struct usb_bos_descriptor {
	__u8  bNumDeviceCaps;
	__u8  bNumDeviceCaps;
} __attribute__((packed));
} __attribute__((packed));


#define USB_DT_BOS_SIZE		5
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/


/* USB_DT_DEVICE_CAPABILITY:  grouped with BOS */
/* USB_DT_DEVICE_CAPABILITY:  grouped with BOS */
@@ -712,16 +728,56 @@ struct usb_wireless_cap_descriptor { /* Ultra Wide Band */
	__u8  bReserved;
	__u8  bReserved;
} __attribute__((packed));
} __attribute__((packed));


/* USB 2.0 Extension descriptor */
#define	USB_CAP_TYPE_EXT		2
#define	USB_CAP_TYPE_EXT		2


struct usb_ext_cap_descriptor {		/* Link Power Management */
struct usb_ext_cap_descriptor {		/* Link Power Management */
	__u8  bLength;
	__u8  bLength;
	__u8  bDescriptorType;
	__u8  bDescriptorType;
	__u8  bDevCapabilityType;
	__u8  bDevCapabilityType;
	__u8  bmAttributes;
	__le32 bmAttributes;
#define USB_LPM_SUPPORT			(1 << 1)	/* supports LPM */
#define USB_LPM_SUPPORT			(1 << 1)	/* supports LPM */
} __attribute__((packed));
} __attribute__((packed));


#define USB_DT_USB_EXT_CAP_SIZE	7

/*
 * SuperSpeed USB Capability descriptor: Defines the set of SuperSpeed USB
 * specific device level capabilities
 */
#define		USB_SS_CAP_TYPE		3
struct usb_ss_cap_descriptor {		/* Link Power Management */
	__u8  bLength;
	__u8  bDescriptorType;
	__u8  bDevCapabilityType;
	__u8  bmAttributes;
#define USB_LTM_SUPPORT			(1 << 1) /* supports LTM */
	__le16 wSpeedSupported;
#define USB_LOW_SPEED_OPERATION		(1)	 /* Low speed operation */
#define USB_FULL_SPEED_OPERATION	(1 << 1) /* Full speed operation */
#define USB_HIGH_SPEED_OPERATION	(1 << 2) /* High speed operation */
#define USB_5GBPS_OPERATION		(1 << 3) /* Operation at 5Gbps */
	__u8  bFunctionalitySupport;
	__u8  bU1devExitLat;
	__le16 bU2DevExitLat;
} __attribute__((packed));

#define USB_DT_USB_SS_CAP_SIZE	10

/*
 * Container ID Capability descriptor: Defines the instance unique ID used to
 * identify the instance across all operating modes
 */
#define	CONTAINER_ID_TYPE	4
struct usb_ss_container_id_descriptor {
	__u8  bLength;
	__u8  bDescriptorType;
	__u8  bDevCapabilityType;
	__u8  bReserved;
	__u8  ContainerID[16]; /* 128-bit number */
} __attribute__((packed));

#define USB_DT_USB_SS_CONTN_ID_SIZE	20
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/


/* USB_DT_WIRELESS_ENDPOINT_COMP:  companion descriptor associated with
/* USB_DT_WIRELESS_ENDPOINT_COMP:  companion descriptor associated with