Fork of the official USBDevice library

Fork of USBDevice by mbed official

Committer:
screamer
Date:
Fri Apr 28 17:01:10 2017 +0000
Branch:
device-files
Revision:
76:f0fd8d911b24
Parent:
USBDevice/USBEndpoints_LPC17_LPC23.h@73:8d28a0cb7b43
Changed the layout of USBDevice implementation for various targets to match mbed-os/targets. This also reduces the amount of files being compiled as USBDevice code for other targets is not compiled.

Who changed what in which revision?

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