USB device stack

Dependents:   mbed-mX-USB-TEST1 USBMSD_SD_HID_HelloWorld HidTest MIDI_usb_bridge ... more

Legacy Warning

This is an mbed 2 library. To learn more about mbed OS 5, visit the docs.

Pull requests against this repository are no longer supported. Please raise against mbed OS 5 as documented above.

Committer:
Kojto
Date:
Thu Jul 27 12:14:04 2017 +0100
Revision:
71:53949e6131f6
Update libraries

Fixes the previous commmit, as some devices were not copied. USBDevice contains
now targets directory with all targets implementations

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kojto 71:53949e6131f6 1 /* Copyright (c) 2010-2011 mbed.org, MIT License
Kojto 71:53949e6131f6 2 *
Kojto 71:53949e6131f6 3 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
Kojto 71:53949e6131f6 4 * and associated documentation files (the "Software"), to deal in the Software without
Kojto 71:53949e6131f6 5 * restriction, including without limitation the rights to use, copy, modify, merge, publish,
Kojto 71:53949e6131f6 6 * distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
Kojto 71:53949e6131f6 7 * Software is furnished to do so, subject to the following conditions:
Kojto 71:53949e6131f6 8 *
Kojto 71:53949e6131f6 9 * The above copyright notice and this permission notice shall be included in all copies or
Kojto 71:53949e6131f6 10 * substantial portions of the Software.
Kojto 71:53949e6131f6 11 *
Kojto 71:53949e6131f6 12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
Kojto 71:53949e6131f6 13 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
Kojto 71:53949e6131f6 14 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
Kojto 71:53949e6131f6 15 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
Kojto 71:53949e6131f6 16 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Kojto 71:53949e6131f6 17 */
Kojto 71:53949e6131f6 18
Kojto 71:53949e6131f6 19 #define NUMBER_OF_LOGICAL_ENDPOINTS (16)
Kojto 71:53949e6131f6 20 #define NUMBER_OF_PHYSICAL_ENDPOINTS (NUMBER_OF_LOGICAL_ENDPOINTS * 2)
Kojto 71:53949e6131f6 21
Kojto 71:53949e6131f6 22 /* Define physical endpoint numbers */
Kojto 71:53949e6131f6 23
Kojto 71:53949e6131f6 24 /* Endpoint No. Type(s) MaxPacket DoubleBuffer */
Kojto 71:53949e6131f6 25 /* ---------------- ------------ ---------- --- */
Kojto 71:53949e6131f6 26 #define EP0OUT (0) /* Control 64 No */
Kojto 71:53949e6131f6 27 #define EP0IN (1) /* Control 64 No */
Kojto 71:53949e6131f6 28 #define EP1OUT (2) /* Interrupt 64 No */
Kojto 71:53949e6131f6 29 #define EP1IN (3) /* Interrupt 64 No */
Kojto 71:53949e6131f6 30 #define EP2OUT (4) /* Bulk 64 Yes */
Kojto 71:53949e6131f6 31 #define EP2IN (5) /* Bulk 64 Yes */
Kojto 71:53949e6131f6 32 #define EP3OUT (6) /* Isochronous 1023 Yes */
Kojto 71:53949e6131f6 33 #define EP3IN (7) /* Isochronous 1023 Yes */
Kojto 71:53949e6131f6 34 #define EP4OUT (8) /* Interrupt 64 No */
Kojto 71:53949e6131f6 35 #define EP4IN (9) /* Interrupt 64 No */
Kojto 71:53949e6131f6 36 #define EP5OUT (10) /* Bulk 64 Yes */
Kojto 71:53949e6131f6 37 #define EP5IN (11) /* Bulk 64 Yes */
Kojto 71:53949e6131f6 38 #define EP6OUT (12) /* Isochronous 1023 Yes */
Kojto 71:53949e6131f6 39 #define EP6IN (13) /* Isochronous 1023 Yes */
Kojto 71:53949e6131f6 40 #define EP7OUT (14) /* Interrupt 64 No */
Kojto 71:53949e6131f6 41 #define EP7IN (15) /* Interrupt 64 No */
Kojto 71:53949e6131f6 42 #define EP8OUT (16) /* Bulk 64 Yes */
Kojto 71:53949e6131f6 43 #define EP8IN (17) /* Bulk 64 Yes */
Kojto 71:53949e6131f6 44 #define EP9OUT (18) /* Isochronous 1023 Yes */
Kojto 71:53949e6131f6 45 #define EP9IN (19) /* Isochronous 1023 Yes */
Kojto 71:53949e6131f6 46 #define EP10OUT (20) /* Interrupt 64 No */
Kojto 71:53949e6131f6 47 #define EP10IN (21) /* Interrupt 64 No */
Kojto 71:53949e6131f6 48 #define EP11OUT (22) /* Bulk 64 Yes */
Kojto 71:53949e6131f6 49 #define EP11IN (23) /* Bulk 64 Yes */
Kojto 71:53949e6131f6 50 #define EP12OUT (24) /* Isochronous 1023 Yes */
Kojto 71:53949e6131f6 51 #define EP12IN (25) /* Isochronous 1023 Yes */
Kojto 71:53949e6131f6 52 #define EP13OUT (26) /* Interrupt 64 No */
Kojto 71:53949e6131f6 53 #define EP13IN (27) /* Interrupt 64 No */
Kojto 71:53949e6131f6 54 #define EP14OUT (28) /* Bulk 64 Yes */
Kojto 71:53949e6131f6 55 #define EP14IN (29) /* Bulk 64 Yes */
Kojto 71:53949e6131f6 56 #define EP15OUT (30) /* Bulk 64 Yes */
Kojto 71:53949e6131f6 57 #define EP15IN (31) /* Bulk 64 Yes */
Kojto 71:53949e6131f6 58
Kojto 71:53949e6131f6 59 /* Maximum Packet sizes */
Kojto 71:53949e6131f6 60
Kojto 71:53949e6131f6 61 #define MAX_PACKET_SIZE_EP0 (64)
Kojto 71:53949e6131f6 62 #define MAX_PACKET_SIZE_EP1 (64)
Kojto 71:53949e6131f6 63 #define MAX_PACKET_SIZE_EP2 (64)
Kojto 71:53949e6131f6 64 #define MAX_PACKET_SIZE_EP3 (1023)
Kojto 71:53949e6131f6 65 #define MAX_PACKET_SIZE_EP4 (64)
Kojto 71:53949e6131f6 66 #define MAX_PACKET_SIZE_EP5 (64)
Kojto 71:53949e6131f6 67 #define MAX_PACKET_SIZE_EP6 (1023)
Kojto 71:53949e6131f6 68 #define MAX_PACKET_SIZE_EP7 (64)
Kojto 71:53949e6131f6 69 #define MAX_PACKET_SIZE_EP8 (64)
Kojto 71:53949e6131f6 70 #define MAX_PACKET_SIZE_EP9 (1023)
Kojto 71:53949e6131f6 71 #define MAX_PACKET_SIZE_EP10 (64)
Kojto 71:53949e6131f6 72 #define MAX_PACKET_SIZE_EP11 (64)
Kojto 71:53949e6131f6 73 #define MAX_PACKET_SIZE_EP12 (1023)
Kojto 71:53949e6131f6 74 #define MAX_PACKET_SIZE_EP13 (64)
Kojto 71:53949e6131f6 75 #define MAX_PACKET_SIZE_EP14 (64)
Kojto 71:53949e6131f6 76 #define MAX_PACKET_SIZE_EP15 (64)
Kojto 71:53949e6131f6 77
Kojto 71:53949e6131f6 78 /* Generic endpoints - intended to be portable accross devices */
Kojto 71:53949e6131f6 79 /* and be suitable for simple USB devices. */
Kojto 71:53949e6131f6 80
Kojto 71:53949e6131f6 81 /* Bulk endpoints */
Kojto 71:53949e6131f6 82 #define EPBULK_OUT (EP2OUT)
Kojto 71:53949e6131f6 83 #define EPBULK_IN (EP2IN)
Kojto 71:53949e6131f6 84 #define EPBULK_OUT_callback EP2_OUT_callback
Kojto 71:53949e6131f6 85 #define EPBULK_IN_callback EP2_IN_callback
Kojto 71:53949e6131f6 86 /* Interrupt endpoints */
Kojto 71:53949e6131f6 87 #define EPINT_OUT (EP1OUT)
Kojto 71:53949e6131f6 88 #define EPINT_IN (EP1IN)
Kojto 71:53949e6131f6 89 #define EPINT_OUT_callback EP1_OUT_callback
Kojto 71:53949e6131f6 90 #define EPINT_IN_callback EP1_IN_callback
Kojto 71:53949e6131f6 91 /* Isochronous endpoints */
Kojto 71:53949e6131f6 92 #define EPISO_OUT (EP3OUT)
Kojto 71:53949e6131f6 93 #define EPISO_IN (EP3IN)
Kojto 71:53949e6131f6 94 #define EPISO_OUT_callback EP3_OUT_callback
Kojto 71:53949e6131f6 95 #define EPISO_IN_callback EP3_IN_callback
Kojto 71:53949e6131f6 96
Kojto 71:53949e6131f6 97 #define MAX_PACKET_SIZE_EPBULK (MAX_PACKET_SIZE_EP2)
Kojto 71:53949e6131f6 98 #define MAX_PACKET_SIZE_EPINT (MAX_PACKET_SIZE_EP1)
Kojto 71:53949e6131f6 99 #define MAX_PACKET_SIZE_EPISO (MAX_PACKET_SIZE_EP3)