diff options
Diffstat (limited to 'include/uapi/linux/usb')
| -rw-r--r-- | include/uapi/linux/usb/Kbuild | 10 | ||||
| -rw-r--r-- | include/uapi/linux/usb/audio.h | 545 | ||||
| -rw-r--r-- | include/uapi/linux/usb/cdc.h | 412 | ||||
| -rw-r--r-- | include/uapi/linux/usb/ch11.h | 266 | ||||
| -rw-r--r-- | include/uapi/linux/usb/ch9.h | 993 | ||||
| -rw-r--r-- | include/uapi/linux/usb/functionfs.h | 169 | ||||
| -rw-r--r-- | include/uapi/linux/usb/g_printer.h | 35 | ||||
| -rw-r--r-- | include/uapi/linux/usb/gadgetfs.h | 88 | ||||
| -rw-r--r-- | include/uapi/linux/usb/midi.h | 112 | ||||
| -rw-r--r-- | include/uapi/linux/usb/tmc.h | 43 | ||||
| -rw-r--r-- | include/uapi/linux/usb/video.h | 568 |
11 files changed, 3241 insertions, 0 deletions
diff --git a/include/uapi/linux/usb/Kbuild b/include/uapi/linux/usb/Kbuild index aafaa5aa54d4..6cb4ea826834 100644 --- a/include/uapi/linux/usb/Kbuild +++ b/include/uapi/linux/usb/Kbuild | |||
| @@ -1 +1,11 @@ | |||
| 1 | # UAPI Header export list | 1 | # UAPI Header export list |
| 2 | header-y += audio.h | ||
| 3 | header-y += cdc.h | ||
| 4 | header-y += ch11.h | ||
| 5 | header-y += ch9.h | ||
| 6 | header-y += functionfs.h | ||
| 7 | header-y += g_printer.h | ||
| 8 | header-y += gadgetfs.h | ||
| 9 | header-y += midi.h | ||
| 10 | header-y += tmc.h | ||
| 11 | header-y += video.h | ||
diff --git a/include/uapi/linux/usb/audio.h b/include/uapi/linux/usb/audio.h new file mode 100644 index 000000000000..ac90037894d9 --- /dev/null +++ b/include/uapi/linux/usb/audio.h | |||
| @@ -0,0 +1,545 @@ | |||
| 1 | /* | ||
| 2 | * <linux/usb/audio.h> -- USB Audio definitions. | ||
| 3 | * | ||
| 4 | * Copyright (C) 2006 Thumtronics Pty Ltd. | ||
| 5 | * Developed for Thumtronics by Grey Innovation | ||
| 6 | * Ben Williamson <ben.williamson@greyinnovation.com> | ||
| 7 | * | ||
| 8 | * This software is distributed under the terms of the GNU General Public | ||
| 9 | * License ("GPL") version 2, as published by the Free Software Foundation. | ||
| 10 | * | ||
| 11 | * This file holds USB constants and structures defined | ||
| 12 | * by the USB Device Class Definition for Audio Devices. | ||
| 13 | * Comments below reference relevant sections of that document: | ||
| 14 | * | ||
| 15 | * http://www.usb.org/developers/devclass_docs/audio10.pdf | ||
| 16 | * | ||
| 17 | * Types and defines in this file are either specific to version 1.0 of | ||
| 18 | * this standard or common for newer versions. | ||
| 19 | */ | ||
| 20 | |||
| 21 | #ifndef _UAPI__LINUX_USB_AUDIO_H | ||
| 22 | #define _UAPI__LINUX_USB_AUDIO_H | ||
| 23 | |||
| 24 | #include <linux/types.h> | ||
| 25 | |||
| 26 | /* bInterfaceProtocol values to denote the version of the standard used */ | ||
| 27 | #define UAC_VERSION_1 0x00 | ||
| 28 | #define UAC_VERSION_2 0x20 | ||
| 29 | |||
| 30 | /* A.2 Audio Interface Subclass Codes */ | ||
| 31 | #define USB_SUBCLASS_AUDIOCONTROL 0x01 | ||
| 32 | #define USB_SUBCLASS_AUDIOSTREAMING 0x02 | ||
| 33 | #define USB_SUBCLASS_MIDISTREAMING 0x03 | ||
| 34 | |||
| 35 | /* A.5 Audio Class-Specific AC Interface Descriptor Subtypes */ | ||
| 36 | #define UAC_HEADER 0x01 | ||
| 37 | #define UAC_INPUT_TERMINAL 0x02 | ||
| 38 | #define UAC_OUTPUT_TERMINAL 0x03 | ||
| 39 | #define UAC_MIXER_UNIT 0x04 | ||
| 40 | #define UAC_SELECTOR_UNIT 0x05 | ||
| 41 | #define UAC_FEATURE_UNIT 0x06 | ||
| 42 | #define UAC1_PROCESSING_UNIT 0x07 | ||
| 43 | #define UAC1_EXTENSION_UNIT 0x08 | ||
| 44 | |||
| 45 | /* A.6 Audio Class-Specific AS Interface Descriptor Subtypes */ | ||
| 46 | #define UAC_AS_GENERAL 0x01 | ||
| 47 | #define UAC_FORMAT_TYPE 0x02 | ||
| 48 | #define UAC_FORMAT_SPECIFIC 0x03 | ||
| 49 | |||
| 50 | /* A.7 Processing Unit Process Types */ | ||
| 51 | #define UAC_PROCESS_UNDEFINED 0x00 | ||
| 52 | #define UAC_PROCESS_UP_DOWNMIX 0x01 | ||
| 53 | #define UAC_PROCESS_DOLBY_PROLOGIC 0x02 | ||
| 54 | #define UAC_PROCESS_STEREO_EXTENDER 0x03 | ||
| 55 | #define UAC_PROCESS_REVERB 0x04 | ||
| 56 | #define UAC_PROCESS_CHORUS 0x05 | ||
| 57 | #define UAC_PROCESS_DYN_RANGE_COMP 0x06 | ||
| 58 | |||
| 59 | /* A.8 Audio Class-Specific Endpoint Descriptor Subtypes */ | ||
| 60 | #define UAC_EP_GENERAL 0x01 | ||
| 61 | |||
| 62 | /* A.9 Audio Class-Specific Request Codes */ | ||
| 63 | #define UAC_SET_ 0x00 | ||
| 64 | #define UAC_GET_ 0x80 | ||
| 65 | |||
| 66 | #define UAC__CUR 0x1 | ||
| 67 | #define UAC__MIN 0x2 | ||
| 68 | #define UAC__MAX 0x3 | ||
| 69 | #define UAC__RES 0x4 | ||
| 70 | #define UAC__MEM 0x5 | ||
| 71 | |||
| 72 | #define UAC_SET_CUR (UAC_SET_ | UAC__CUR) | ||
| 73 | #define UAC_GET_CUR (UAC_GET_ | UAC__CUR) | ||
| 74 | #define UAC_SET_MIN (UAC_SET_ | UAC__MIN) | ||
| 75 | #define UAC_GET_MIN (UAC_GET_ | UAC__MIN) | ||
| 76 | #define UAC_SET_MAX (UAC_SET_ | UAC__MAX) | ||
| 77 | #define UAC_GET_MAX (UAC_GET_ | UAC__MAX) | ||
| 78 | #define UAC_SET_RES (UAC_SET_ | UAC__RES) | ||
| 79 | #define UAC_GET_RES (UAC_GET_ | UAC__RES) | ||
| 80 | #define UAC_SET_MEM (UAC_SET_ | UAC__MEM) | ||
| 81 | #define UAC_GET_MEM (UAC_GET_ | UAC__MEM) | ||
| 82 | |||
| 83 | #define UAC_GET_STAT 0xff | ||
| 84 | |||
| 85 | /* A.10 Control Selector Codes */ | ||
| 86 | |||
| 87 | /* A.10.1 Terminal Control Selectors */ | ||
| 88 | #define UAC_TERM_COPY_PROTECT 0x01 | ||
| 89 | |||
| 90 | /* A.10.2 Feature Unit Control Selectors */ | ||
| 91 | #define UAC_FU_MUTE 0x01 | ||
| 92 | #define UAC_FU_VOLUME 0x02 | ||
| 93 | #define UAC_FU_BASS 0x03 | ||
| 94 | #define UAC_FU_MID 0x04 | ||
| 95 | #define UAC_FU_TREBLE 0x05 | ||
| 96 | #define UAC_FU_GRAPHIC_EQUALIZER 0x06 | ||
| 97 | #define UAC_FU_AUTOMATIC_GAIN 0x07 | ||
| 98 | #define UAC_FU_DELAY 0x08 | ||
| 99 | #define UAC_FU_BASS_BOOST 0x09 | ||
| 100 | #define UAC_FU_LOUDNESS 0x0a | ||
| 101 | |||
| 102 | #define UAC_CONTROL_BIT(CS) (1 << ((CS) - 1)) | ||
| 103 | |||
| 104 | /* A.10.3.1 Up/Down-mix Processing Unit Controls Selectors */ | ||
| 105 | #define UAC_UD_ENABLE 0x01 | ||
| 106 | #define UAC_UD_MODE_SELECT 0x02 | ||
| 107 | |||
| 108 | /* A.10.3.2 Dolby Prologic (tm) Processing Unit Controls Selectors */ | ||
| 109 | #define UAC_DP_ENABLE 0x01 | ||
| 110 | #define UAC_DP_MODE_SELECT 0x02 | ||
| 111 | |||
| 112 | /* A.10.3.3 3D Stereo Extender Processing Unit Control Selectors */ | ||
| 113 | #define UAC_3D_ENABLE 0x01 | ||
| 114 | #define UAC_3D_SPACE 0x02 | ||
| 115 | |||
| 116 | /* A.10.3.4 Reverberation Processing Unit Control Selectors */ | ||
| 117 | #define UAC_REVERB_ENABLE 0x01 | ||
| 118 | #define UAC_REVERB_LEVEL 0x02 | ||
| 119 | #define UAC_REVERB_TIME 0x03 | ||
| 120 | #define UAC_REVERB_FEEDBACK 0x04 | ||
| 121 | |||
| 122 | /* A.10.3.5 Chorus Processing Unit Control Selectors */ | ||
| 123 | #define UAC_CHORUS_ENABLE 0x01 | ||
| 124 | #define UAC_CHORUS_LEVEL 0x02 | ||
| 125 | #define UAC_CHORUS_RATE 0x03 | ||
| 126 | #define UAC_CHORUS_DEPTH 0x04 | ||
| 127 | |||
| 128 | /* A.10.3.6 Dynamic Range Compressor Unit Control Selectors */ | ||
| 129 | #define UAC_DCR_ENABLE 0x01 | ||
| 130 | #define UAC_DCR_RATE 0x02 | ||
| 131 | #define UAC_DCR_MAXAMPL 0x03 | ||
| 132 | #define UAC_DCR_THRESHOLD 0x04 | ||
| 133 | #define UAC_DCR_ATTACK_TIME 0x05 | ||
| 134 | #define UAC_DCR_RELEASE_TIME 0x06 | ||
| 135 | |||
| 136 | /* A.10.4 Extension Unit Control Selectors */ | ||
| 137 | #define UAC_XU_ENABLE 0x01 | ||
| 138 | |||
| 139 | /* MIDI - A.1 MS Class-Specific Interface Descriptor Subtypes */ | ||
| 140 | #define UAC_MS_HEADER 0x01 | ||
| 141 | #define UAC_MIDI_IN_JACK 0x02 | ||
| 142 | #define UAC_MIDI_OUT_JACK 0x03 | ||
| 143 | |||
| 144 | /* MIDI - A.1 MS Class-Specific Endpoint Descriptor Subtypes */ | ||
| 145 | #define UAC_MS_GENERAL 0x01 | ||
| 146 | |||
| 147 | /* Terminals - 2.1 USB Terminal Types */ | ||
| 148 | #define UAC_TERMINAL_UNDEFINED 0x100 | ||
| 149 | #define UAC_TERMINAL_STREAMING 0x101 | ||
| 150 | #define UAC_TERMINAL_VENDOR_SPEC 0x1FF | ||
| 151 | |||
| 152 | /* Terminal Control Selectors */ | ||
| 153 | /* 4.3.2 Class-Specific AC Interface Descriptor */ | ||
| 154 | struct uac1_ac_header_descriptor { | ||
| 155 | __u8 bLength; /* 8 + n */ | ||
| 156 | __u8 bDescriptorType; /* USB_DT_CS_INTERFACE */ | ||
| 157 | __u8 bDescriptorSubtype; /* UAC_MS_HEADER */ | ||
| 158 | __le16 bcdADC; /* 0x0100 */ | ||
| 159 | __le16 wTotalLength; /* includes Unit and Terminal desc. */ | ||
| 160 | __u8 bInCollection; /* n */ | ||
| 161 | __u8 baInterfaceNr[]; /* [n] */ | ||
| 162 | } __attribute__ ((packed)); | ||
| 163 | |||
| 164 | #define UAC_DT_AC_HEADER_SIZE(n) (8 + (n)) | ||
| 165 | |||
| 166 | /* As above, but more useful for defining your own descriptors: */ | ||
| 167 | #define DECLARE_UAC_AC_HEADER_DESCRIPTOR(n) \ | ||
| 168 | struct uac1_ac_header_descriptor_##n { \ | ||
| 169 | __u8 bLength; \ | ||
| 170 | __u8 bDescriptorType; \ | ||
| 171 | __u8 bDescriptorSubtype; \ | ||
| 172 | __le16 bcdADC; \ | ||
| 173 | __le16 wTotalLength; \ | ||
| 174 | __u8 bInCollection; \ | ||
| 175 | __u8 baInterfaceNr[n]; \ | ||
| 176 | } __attribute__ ((packed)) | ||
| 177 | |||
| 178 | /* 4.3.2.1 Input Terminal Descriptor */ | ||
