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_M453.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 /* mbed Microcontroller Library
screamer 73:8d28a0cb7b43 2 * Copyright (c) 2015-2016 Nuvoton
screamer 73:8d28a0cb7b43 3 *
screamer 73:8d28a0cb7b43 4 * Licensed under the Apache License, Version 2.0 (the "License");
screamer 73:8d28a0cb7b43 5 * you may not use this file except in compliance with the License.
screamer 73:8d28a0cb7b43 6 * You may obtain a copy of the License at
screamer 73:8d28a0cb7b43 7 *
screamer 73:8d28a0cb7b43 8 * http://www.apache.org/licenses/LICENSE-2.0
screamer 73:8d28a0cb7b43 9 *
screamer 73:8d28a0cb7b43 10 * Unless required by applicable law or agreed to in writing, software
screamer 73:8d28a0cb7b43 11 * distributed under the License is distributed on an "AS IS" BASIS,
screamer 73:8d28a0cb7b43 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
screamer 73:8d28a0cb7b43 13 * See the License for the specific language governing permissions and
screamer 73:8d28a0cb7b43 14 * limitations under the License.
screamer 73:8d28a0cb7b43 15 */
screamer 73:8d28a0cb7b43 16 #define NU_MAX_EPX_BUFSIZE 4096
screamer 73:8d28a0cb7b43 17 #define NU_EP2EPL(ep) ((ep) >> 1)
screamer 73:8d28a0cb7b43 18 #define NU_EP2EPH(ep) (((ep) >> 1) + 1)
screamer 73:8d28a0cb7b43 19 #define NU_EPL2EPH(ep) ((ep) + 1)
screamer 73:8d28a0cb7b43 20 #define NU_EPH2EPL(ep) ((ep) - 1)
screamer 73:8d28a0cb7b43 21 #define NU_EP_DIR_Pos 0
screamer 73:8d28a0cb7b43 22 #define NU_EP_DIR_Msk (1 << NU_EP_DIR_Pos)
screamer 73:8d28a0cb7b43 23 #define NU_EP_DIR_OUT 0
screamer 73:8d28a0cb7b43 24 #define NU_EP_DIR_IN 1
screamer 73:8d28a0cb7b43 25
screamer 73:8d28a0cb7b43 26 #define NU_EP_TYPE(ep) (((ep) & NU_EP_TYPE_Msk) >> NU_EP_TYPE_Pos)
screamer 73:8d28a0cb7b43 27 #define NU_EP_NUM(ep) (((ep) & NU_EP_NUM_Msk) >> NU_EP_NUM_Pos)
screamer 73:8d28a0cb7b43 28 #define NU_EP_DIR(ep) (((ep) & NU_EP_DIR_Msk) >> NU_EP_DIR_Pos)
screamer 73:8d28a0cb7b43 29 #define NU_EP_NUM_DIR(ep) ((NU_EP_NUM(ep) << 1) | NU_EP_DIR(ep))
screamer 73:8d28a0cb7b43 30
screamer 73:8d28a0cb7b43 31 #define NUMBER_OF_PHYSICAL_ENDPOINTS 8
screamer 73:8d28a0cb7b43 32 #define EP0OUT (0)
screamer 73:8d28a0cb7b43 33 #define EP0IN (1)
screamer 73:8d28a0cb7b43 34 #define EP1OUT (2)
screamer 73:8d28a0cb7b43 35 #define EP1IN (3)
screamer 73:8d28a0cb7b43 36 #define EP2OUT (4)
screamer 73:8d28a0cb7b43 37 #define EP2IN (5)
screamer 73:8d28a0cb7b43 38 #define EP3OUT (6)
screamer 73:8d28a0cb7b43 39 #define EP3IN (7)
screamer 73:8d28a0cb7b43 40 #define EP4OUT (8)
screamer 73:8d28a0cb7b43 41 #define EP4IN (9)
screamer 73:8d28a0cb7b43 42 #define EP5OUT (10)
screamer 73:8d28a0cb7b43 43 #define EP5IN (11)
screamer 73:8d28a0cb7b43 44 #define EP6OUT (12)
screamer 73:8d28a0cb7b43 45 #define EP6IN (13)
screamer 73:8d28a0cb7b43 46
screamer 73:8d28a0cb7b43 47 /* Maximum Packet sizes */
screamer 73:8d28a0cb7b43 48 #define MAX_PACKET_SIZE_EP0 64
screamer 73:8d28a0cb7b43 49 #define MAX_PACKET_SIZE_EP1 64
screamer 73:8d28a0cb7b43 50 #define MAX_PACKET_SIZE_EP2 64
screamer 73:8d28a0cb7b43 51 #define MAX_PACKET_SIZE_EP3 0x60
screamer 73:8d28a0cb7b43 52 #define MAX_PACKET_SIZE_EP4 64
screamer 73:8d28a0cb7b43 53 #define MAX_PACKET_SIZE_EP5 64
screamer 73:8d28a0cb7b43 54 #define MAX_PACKET_SIZE_EP6 64
screamer 73:8d28a0cb7b43 55 #define MAX_PACKET_SIZE_EP7 64
screamer 73:8d28a0cb7b43 56
screamer 73:8d28a0cb7b43 57 /* Generic endpoints - intended to be portable accross devices */
screamer 73:8d28a0cb7b43 58 /* and be suitable for simple USB devices. */
screamer 73:8d28a0cb7b43 59
screamer 73:8d28a0cb7b43 60 /* Bulk endpoints */
screamer 73:8d28a0cb7b43 61 #define EPBULK_OUT EP5OUT
screamer 73:8d28a0cb7b43 62 #define EPBULK_IN EP6IN
screamer 73:8d28a0cb7b43 63 #define EPBULK_OUT_callback EP5_OUT_callback
screamer 73:8d28a0cb7b43 64 #define EPBULK_IN_callback EP6_IN_callback
screamer 73:8d28a0cb7b43 65 /* Interrupt endpoints */
screamer 73:8d28a0cb7b43 66 #define EPINT_OUT EP1OUT
screamer 73:8d28a0cb7b43 67 #define EPINT_IN EP2IN
screamer 73:8d28a0cb7b43 68 #define EPINT_OUT_callback EP1_OUT_callback
screamer 73:8d28a0cb7b43 69 #define EPINT_IN_callback EP2_IN_callback
screamer 73:8d28a0cb7b43 70 /* Isochronous endpoints */
screamer 73:8d28a0cb7b43 71 #define EPISO_OUT EP3OUT
screamer 73:8d28a0cb7b43 72 #define EPISO_IN EP4IN
screamer 73:8d28a0cb7b43 73 #define EPISO_OUT_callback EP3_OUT_callback
screamer 73:8d28a0cb7b43 74 #define EPISO_IN_callback EP4_IN_callback
screamer 73:8d28a0cb7b43 75
screamer 73:8d28a0cb7b43 76 #define MAX_PACKET_SIZE_EPBULK 64
screamer 73:8d28a0cb7b43 77 #define MAX_PACKET_SIZE_EPINT 64
screamer 73:8d28a0cb7b43 78 #define MAX_PACKET_SIZE_EPISO 1023
screamer 73:8d28a0cb7b43 79