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 (5)
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) /* Int/Bulk/Iso 64/64/1023 Yes */
Kojto 71:53949e6131f6 29 #define EP1IN (3) /* Int/Bulk/Iso 64/64/1023 Yes */
Kojto 71:53949e6131f6 30 #define EP2OUT (4) /* Int/Bulk/Iso 64/64/1023 Yes */
Kojto 71:53949e6131f6 31 #define EP2IN (5) /* Int/Bulk/Iso 64/64/1023 Yes */
Kojto 71:53949e6131f6 32 #define EP3OUT (6) /* Int/Bulk/Iso 64/64/1023 Yes */
Kojto 71:53949e6131f6 33 #define EP3IN (7) /* Int/Bulk/Iso 64/64/1023 Yes */
Kojto 71:53949e6131f6 34 #define EP4OUT (8) /* Int/Bulk/Iso 64/64/1023 Yes */
Kojto 71:53949e6131f6 35 #define EP4IN (9) /* Int/Bulk/Iso 64/64/1023 Yes */
Kojto 71:53949e6131f6 36
Kojto 71:53949e6131f6 37 /* Maximum Packet sizes */
Kojto 71:53949e6131f6 38
Kojto 71:53949e6131f6 39 #define MAX_PACKET_SIZE_EP0 (64)
Kojto 71:53949e6131f6 40 #define MAX_PACKET_SIZE_EP1 (64) /* Int/Bulk */
Kojto 71:53949e6131f6 41 #define MAX_PACKET_SIZE_EP2 (64) /* Int/Bulk */
Kojto 71:53949e6131f6 42 #define MAX_PACKET_SIZE_EP3 (64) /* Int/Bulk */
Kojto 71:53949e6131f6 43 #define MAX_PACKET_SIZE_EP4 (64) /* Int/Bulk */
Kojto 71:53949e6131f6 44
Kojto 71:53949e6131f6 45 #define MAX_PACKET_SIZE_EP1_ISO (1023) /* Isochronous */
Kojto 71:53949e6131f6 46 #define MAX_PACKET_SIZE_EP2_ISO (1023) /* Isochronous */
Kojto 71:53949e6131f6 47 #define MAX_PACKET_SIZE_EP3_ISO (1023) /* Isochronous */
Kojto 71:53949e6131f6 48 #define MAX_PACKET_SIZE_EP4_ISO (1023) /* Isochronous */
Kojto 71:53949e6131f6 49
Kojto 71:53949e6131f6 50 /* Generic endpoints - intended to be portable accross devices */
Kojto 71:53949e6131f6 51 /* and be suitable for simple USB devices. */
Kojto 71:53949e6131f6 52
Kojto 71:53949e6131f6 53 /* Bulk endpoint */
Kojto 71:53949e6131f6 54 #define EPBULK_OUT (EP2OUT)
Kojto 71:53949e6131f6 55 #define EPBULK_IN (EP2IN)
Kojto 71:53949e6131f6 56 #define EPBULK_OUT_callback EP2_OUT_callback
Kojto 71:53949e6131f6 57 #define EPBULK_IN_callback EP2_IN_callback
Kojto 71:53949e6131f6 58 /* Interrupt endpoint */
Kojto 71:53949e6131f6 59 #define EPINT_OUT (EP1OUT)
Kojto 71:53949e6131f6 60 #define EPINT_IN (EP1IN)
Kojto 71:53949e6131f6 61 #define EPINT_OUT_callback EP1_OUT_callback
Kojto 71:53949e6131f6 62 #define EPINT_IN_callback EP1_IN_callback
Kojto 71:53949e6131f6 63 /* Isochronous endpoint */
Kojto 71:53949e6131f6 64 #define EPISO_OUT (EP3OUT)
Kojto 71:53949e6131f6 65 #define EPISO_IN (EP3IN)
Kojto 71:53949e6131f6 66 #define EPISO_OUT_callback EP3_OUT_callback
Kojto 71:53949e6131f6 67 #define EPISO_IN_callback EP3_IN_callback
Kojto 71:53949e6131f6 68
Kojto 71:53949e6131f6 69 #define MAX_PACKET_SIZE_EPBULK (MAX_PACKET_SIZE_EP2)
Kojto 71:53949e6131f6 70 #define MAX_PACKET_SIZE_EPINT (MAX_PACKET_SIZE_EP1)
Kojto 71:53949e6131f6 71 #define MAX_PACKET_SIZE_EPISO (MAX_PACKET_SIZE_EP3_ISO)