diff options
Diffstat (limited to 'include/linux/usb/ch9.h')
| -rw-r--r-- | include/linux/usb/ch9.h | 68 |
1 files changed, 67 insertions, 1 deletions
diff --git a/include/linux/usb/ch9.h b/include/linux/usb/ch9.h index da2ed77d3e8d..f917bbbc8901 100644 --- a/include/linux/usb/ch9.h +++ b/include/linux/usb/ch9.h | |||
| @@ -123,8 +123,23 @@ | |||
| 123 | #define USB_DEVICE_A_ALT_HNP_SUPPORT 5 /* (otg) other RH port does */ | 123 | #define USB_DEVICE_A_ALT_HNP_SUPPORT 5 /* (otg) other RH port does */ |
| 124 | #define USB_DEVICE_DEBUG_MODE 6 /* (special devices only) */ | 124 | #define USB_DEVICE_DEBUG_MODE 6 /* (special devices only) */ |
| 125 | 125 | ||
| 126 | /* | ||
| 127 | * New Feature Selectors as added by USB 3.0 | ||
| 128 | * See USB 3.0 spec Table 9-6 | ||
| 129 | */ | ||
| 130 | #define USB_DEVICE_U1_ENABLE 48 /* dev may initiate U1 transition */ | ||
| 131 | #define USB_DEVICE_U2_ENABLE 49 /* dev may initiate U2 transition */ | ||
| 132 | #define USB_DEVICE_LTM_ENABLE 50 /* dev may send LTM */ | ||
| 133 | #define USB_INTRF_FUNC_SUSPEND 0 /* function suspend */ | ||
| 134 | |||
| 135 | #define USB_INTR_FUNC_SUSPEND_OPT_MASK 0xFF00 | ||
| 136 | |||
| 126 | #define USB_ENDPOINT_HALT 0 /* IN/OUT will STALL */ | 137 | #define USB_ENDPOINT_HALT 0 /* IN/OUT will STALL */ |
| 127 | 138 | ||
| 139 | /* Bit array elements as returned by the USB_REQ_GET_STATUS request. */ | ||
| 140 | #define USB_DEV_STAT_U1_ENABLED 2 /* transition into U1 state */ | ||
| 141 | #define USB_DEV_STAT_U2_ENABLED 3 /* transition into U2 state */ | ||
| 142 | #define USB_DEV_STAT_LTM_ENABLED 4 /* Latency tolerance messages */ | ||
| 128 | 143 | ||
| 129 | /** | 144 | /** |
| 130 | * struct usb_ctrlrequest - SETUP data for a USB device control request | 145 | * struct usb_ctrlrequest - SETUP data for a USB device control request |
| @@ -675,6 +690,7 @@ struct usb_bos_descriptor { | |||
| 675 | __u8 bNumDeviceCaps; | 690 | __u8 bNumDeviceCaps; |
| 676 | } __attribute__((packed)); | 691 | } __attribute__((packed)); |
| 677 | 692 | ||
| 693 | #define USB_DT_BOS_SIZE 5 | ||
| 678 | /*-------------------------------------------------------------------------*/ | 694 | /*-------------------------------------------------------------------------*/ |
| 679 | 695 | ||
| 680 | /* USB_DT_DEVICE_CAPABILITY: grouped with BOS */ | 696 | /* USB_DT_DEVICE_CAPABILITY: grouped with BOS */ |
| @@ -712,16 +728,56 @@ struct usb_wireless_cap_descriptor { /* Ultra Wide Band */ | |||
| 712 | __u8 bReserved; | 728 | __u8 bReserved; |
| 713 | } __attribute__((packed)); | 729 | } __attribute__((packed)); |
| 714 | 730 | ||
| 731 | /* USB 2.0 Extension descriptor */ | ||
| 715 | #define USB_CAP_TYPE_EXT 2 | 732 | #define USB_CAP_TYPE_EXT 2 |
| 716 | 733 | ||
| 717 | struct usb_ext_cap_descriptor { /* Link Power Management */ | 734 | struct usb_ext_cap_descriptor { /* Link Power Management */ |
| 718 | __u8 bLength; | 735 | __u8 bLength; |
| 719 | __u8 bDescriptorType; | 736 | __u8 bDescriptorType; |
| 720 | __u8 bDevCapabilityType; | 737 | __u8 bDevCapabilityType; |
| 721 | __u8 bmAttributes; | 738 | __le32 bmAttributes; |
| 722 | #define USB_LPM_SUPPORT (1 << 1) /* supports LPM */ | 739 | #define USB_LPM_SUPPORT (1 << 1) /* supports LPM */ |
| 723 | } __attribute__((packed)); | 740 | } __attribute__((packed)); |
| 724 | 741 | ||
| 742 | #define USB_DT_USB_EXT_CAP_SIZE 7 | ||
| 743 | |||
| 744 | /* | ||
| 745 | * SuperSpeed USB Capability descriptor: Defines the set of SuperSpeed USB | ||
| 746 | * specific device level capabilities | ||
| 747 | */ | ||
| 748 | #define USB_SS_CAP_TYPE 3 | ||
| 749 | struct usb_ss_cap_descriptor { /* Link Power Management */ | ||
| 750 | __u8 bLength; | ||
| 751 | __u8 bDescriptorType; | ||
| 752 | __u8 bDevCapabilityType; | ||
| 753 | __u8 bmAttributes; | ||
| 754 | #define USB_LTM_SUPPORT (1 << 1) /* supports LTM */ | ||
| 755 | __le16 wSpeedSupported; | ||
| 756 | #define USB_LOW_SPEED_OPERATION (1) /* Low speed operation */ | ||
| 757 | #define USB_FULL_SPEED_OPERATION (1 << 1) /* Full speed operation */ | ||
| 758 | #define USB_HIGH_SPEED_OPERATION (1 << 2) /* High speed operation */ | ||
| 759 | #define USB_5GBPS_OPERATION (1 << 3) /* Operation at 5Gbps */ | ||
| 760 | __u8 bFunctionalitySupport; | ||
| 761 | __u8 bU1devExitLat; | ||
| 762 | __le16 bU2DevExitLat; | ||
| 763 | } __attribute__((packed)); | ||
| 764 | |||
| 765 | #define USB_DT_USB_SS_CAP_SIZE 10 | ||
| 766 | |||
| 767 | /* | ||
| 768 | * Container ID Capability descriptor: Defines the instance unique ID used to | ||
| 769 | * identify the instance across all operating modes | ||
| 770 | */ | ||
| 771 | #define CONTAINER_ID_TYPE 4 | ||
| 772 | struct usb_ss_container_id_descriptor { | ||
| 773 | __u8 bLength; | ||
| 774 | __u8 bDescriptorType; | ||
| 775 | __u8 bDevCapabilityType; | ||
| 776 | __u8 bReserved; | ||
| 777 | __u8 ContainerID[16]; /* 128-bit number */ | ||
| 778 | } __attribute__((packed)); | ||
| 779 | |||
| 780 | #define USB_DT_USB_SS_CONTN_ID_SIZE 20 | ||
| 725 | /*-------------------------------------------------------------------------*/ | 781 | /*-------------------------------------------------------------------------*/ |
| 726 | 782 | ||
| 727 | /* USB_DT_WIRELESS_ENDPOINT_COMP: companion descriptor associated with | 783 | /* USB_DT_WIRELESS_ENDPOINT_COMP: companion descriptor associated with |
| @@ -808,4 +864,14 @@ enum usb_device_state { | |||
| 808 | */ | 864 | */ |
| 809 | }; | 865 | }; |
| 810 | 866 | ||
| 867 | /*-------------------------------------------------------------------------*/ | ||
| 868 | |||
| 869 | /* | ||
| 870 | * As per USB compliance update, a device that is actively drawing | ||
| 871 | * more than 100mA from USB must report itself as bus-powered in | ||
| 872 | * the GetStatus(DEVICE) call. | ||
| 873 | * http://compliance.usb.org/index.asp?UpdateFile=Electrical&Format=Standard#34 | ||
| 874 | */ | ||
| 875 | #define USB_SELF_POWER_VBUS_MAX_DRAW 100 | ||
| 876 | |||
| 811 | #endif /* __LINUX_USB_CH9_H */ | 877 | #endif /* __LINUX_USB_CH9_H */ |
