diff options
Diffstat (limited to 'fw/usb_device_local.h')
| -rw-r--r-- | fw/usb_device_local.h | 424 |
1 files changed, 0 insertions, 424 deletions
diff --git a/fw/usb_device_local.h b/fw/usb_device_local.h deleted file mode 100644 index f74ed1d..0000000 --- a/fw/usb_device_local.h +++ /dev/null @@ -1,424 +0,0 @@ -// DOM-IGNORE-BEGIN -/******************************************************************************* -Copyright 2015 Microchip Technology Inc. (www.microchip.com) - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - -To request to license the code under the MLA license (www.microchip.com/mla_license), -please contact mla_licensing@microchip.com -*******************************************************************************/ -//DOM-IGNORE-END - -#include "usb_config.h" - -/* Short Packet States - Used by Control Transfer Read - CTRL_TRF_TX */ -#define SHORT_PKT_NOT_USED 0 -#define SHORT_PKT_PENDING 1 -#define SHORT_PKT_SENT 2 - -/* Control Transfer States */ -#define WAIT_SETUP 0 -#define CTRL_TRF_TX 1 -#define CTRL_TRF_RX 2 - - -typedef union -{ - struct - { - unsigned char ping_pong_state :1; - unsigned char transfer_terminated :1; - } bits; - uint8_t Val; -} EP_STATUS; - -#if (USB_PING_PONG_MODE == USB_PING_PONG__NO_PING_PONG) - #define USB_NEXT_EP0_OUT_PING_PONG 0x0000 // Used in USB Device Mode only - #define USB_NEXT_EP0_IN_PING_PONG 0x0000 // Used in USB Device Mode only - #define USB_NEXT_PING_PONG 0x0000 // Used in USB Device Mode only - #define EP0_OUT_EVEN 0 // Used in USB Device Mode only - #define EP0_OUT_ODD 0 // Used in USB Device Mode only - #define EP0_IN_EVEN 1 // Used in USB Device Mode only - #define EP0_IN_ODD 1 // Used in USB Device Mode only - #define EP1_OUT_EVEN 2 // Used in USB Device Mode only - #define EP1_OUT_ODD 2 // Used in USB Device Mode only - #define EP1_IN_EVEN 3 // Used in USB Device Mode only - #define EP1_IN_ODD 3 // Used in USB Device Mode only - #define EP2_OUT_EVEN 4 // Used in USB Device Mode only - #define EP2_OUT_ODD 4 // Used in USB Device Mode only - #define EP2_IN_EVEN 5 // Used in USB Device Mode only - #define EP2_IN_ODD 5 // Used in USB Device Mode only - #define EP3_OUT_EVEN 6 // Used in USB Device Mode only - #define EP3_OUT_ODD 6 // Used in USB Device Mode only - #define EP3_IN_EVEN 7 // Used in USB Device Mode only - #define EP3_IN_ODD 7 // Used in USB Device Mode only - #define EP4_OUT_EVEN 8 // Used in USB Device Mode only - #define EP4_OUT_ODD 8 // Used in USB Device Mode only - #define EP4_IN_EVEN 9 // Used in USB Device Mode only - #define EP4_IN_ODD 9 // Used in USB Device Mode only - #define EP5_OUT_EVEN 10 // Used in USB Device Mode only - #define EP5_OUT_ODD 10 // Used in USB Device Mode only - #define EP5_IN_EVEN 11 // Used in USB Device Mode only - #define EP5_IN_ODD 11 // Used in USB Device Mode only - #define EP6_OUT_EVEN 12 // Used in USB Device Mode only - #define EP6_OUT_ODD 12 // Used in USB Device Mode only - #define EP6_IN_EVEN 13 // Used in USB Device Mode only - #define EP6_IN_ODD 13 // Used in USB Device Mode only - #define EP7_OUT_EVEN 14 // Used in USB Device Mode only - #define EP7_OUT_ODD 14 // Used in USB Device Mode only - #define EP7_IN_EVEN 15 // Used in USB Device Mode only - #define EP7_IN_ODD 15 // Used in USB Device Mode only - #define EP8_OUT_EVEN 16 // Used in USB Device Mode only - #define EP8_OUT_ODD 16 // Used in USB Device Mode only - #define EP8_IN_EVEN 17 // Used in USB Device Mode only - #define EP8_IN_ODD 17 // Used in USB Device Mode only - #define EP9_OUT_EVEN 18 // Used in USB Device Mode only - #define EP9_OUT_ODD 18 // Used in USB Device Mode only - #define EP9_IN_EVEN 19 // Used in USB Device Mode only - #define EP9_IN_ODD 19 // Used in USB Device Mode only - #define EP10_OUT_EVEN 20 // Used in USB Device Mode only - #define EP10_OUT_ODD 20 // Used in USB Device Mode only - #define EP10_IN_EVEN 21 // Used in USB Device Mode only - #define EP10_IN_ODD 21 // Used in USB Device Mode only - #define EP11_OUT_EVEN 22 // Used in USB Device Mode only - #define EP11_OUT_ODD 22 // Used in USB Device Mode only - #define EP11_IN_EVEN 23 // Used in USB Device Mode only - #define EP11_IN_ODD 23 // Used in USB Device Mode only - #define EP12_OUT_EVEN 24 // Used in USB Device Mode only - #define EP12_OUT_ODD 24 // Used in USB Device Mode only - #define EP12_IN_EVEN 25 // Used in USB Device Mode only - #define EP12_IN_ODD 25 // Used in USB Device Mode only - #define EP13_OUT_EVEN 26 // Used in USB Device Mode only - #define EP13_OUT_ODD 26 // Used in USB Device Mode only - #define EP13_IN_EVEN 27 // Used in USB Device Mode only - #define EP13_IN_ODD 27 // Used in USB Device Mode only - #define EP14_OUT_EVEN 28 // Used in USB Device Mode only - #define EP14_OUT_ODD 28 // Used in USB Device Mode only - #define EP14_IN_EVEN 29 // Used in USB Device Mode only - #define EP14_IN_ODD 29 // Used in USB Device Mode only - #define EP15_OUT_EVEN 30 // Used in USB Device Mode only - #define EP15_OUT_ODD 30 // Used in USB Device Mode only - #define EP15_IN_EVEN 31 // Used in USB Device Mode only - #define EP15_IN_ODD 31 // Used in USB Device Mode only - - #define EP(ep,dir,pp) (2*ep+dir) // Used in USB Device Mode only - #define BD(ep,dir,pp) ((8 * ep) + (4 * dir)) // Used in USB Device Mode only - -#elif (USB_PING_PONG_MODE == USB_PING_PONG__EP0_OUT_ONLY) - #define USB_NEXT_EP0_OUT_PING_PONG 0x0004 - #define USB_NEXT_EP0_IN_PING_PONG 0x0000 - #define USB_NEXT_PING_PONG 0x0000 - #define EP0_OUT_EVEN 0 - #define EP0_OUT_ODD 1 - #define EP0_IN_EVEN 2 - #define EP0_IN_ODD 2 - #define EP1_OUT_EVEN 3 - #define EP1_OUT_ODD 3 - #define EP1_IN_EVEN 4 - #define EP1_IN_ODD 4 - #define EP2_OUT_EVEN 5 - #define EP2_OUT_ODD 5 - #define EP2_IN_EVEN 6 - #define EP2_IN_ODD 6 - #define EP3_OUT_EVEN 7 - #define EP3_OUT_ODD 7 - #define EP3_IN_EVEN 8 - #define EP3_IN_ODD 8 - #define EP4_OUT_EVEN 9 - #define EP4_OUT_ODD 9 - #define EP4_IN_EVEN 10 - #define EP4_IN_ODD 10 - #define EP5_OUT_EVEN 11 - #define EP5_OUT_ODD 11 - #define EP5_IN_EVEN 12 - #define EP5_IN_ODD 12 - #define EP6_OUT_EVEN 13 - #define EP6_OUT_ODD 13 - #define EP6_IN_EVEN 14 - #define EP6_IN_ODD 14 - #define EP7_OUT_EVEN 15 - #define EP7_OUT_ODD 15 - #define EP7_IN_EVEN 16 - #define EP7_IN_ODD 16 - #define EP8_OUT_EVEN 17 - #define EP8_OUT_ODD 17 - #define EP8_IN_EVEN 18 - #define EP8_IN_ODD 18 - #define EP9_OUT_EVEN 19 - #define EP9_OUT_ODD 19 - #define EP9_IN_EVEN 20 - #define EP9_IN_ODD 20 - #define EP10_OUT_EVEN 21 - #define EP10_OUT_ODD 21 - #define EP10_IN_EVEN 22 - #define EP10_IN_ODD 22 - #define EP11_OUT_EVEN 23 - #define EP11_OUT_ODD 23 - #define EP11_IN_EVEN 24 - #define EP11_IN_ODD 24 - #define EP12_OUT_EVEN 25 - #define EP12_OUT_ODD 25 - #define EP12_IN_EVEN 26 - #define EP12_IN_ODD 26 - #define EP13_OUT_EVEN 27 - #define EP13_OUT_ODD 27 - #define EP13_IN_EVEN 28 - #define EP13_IN_ODD 28 - #define EP14_OUT_EVEN 29 - #define EP14_OUT_ODD 29 - #define EP14_IN_EVEN 30 - #define EP14_IN_ODD 30 - #define EP15_OUT_EVEN 31 - #define EP15_OUT_ODD 31 - #define EP15_IN_EVEN 32 - #define EP15_IN_ODD 32 - - #define EP(ep,dir,pp) (2u*ep+dir+(((ep==0)&&(dir==0))?pp:1)) - #define BD(ep,dir,pp) (4u*((2u*ep)+dir+(((ep==0)&&(dir==0))?pp:1))) - -#elif (USB_PING_PONG_MODE == USB_PING_PONG__FULL_PING_PONG) -#if defined (__18CXX) || defined(__C30__) || defined __XC16__ || defined(__XC8) - #if (defined (__dsPIC33E__) || defined (__PIC24E__)) - #define USB_NEXT_EP0_OUT_PING_PONG 0x0008 - #define USB_NEXT_EP0_IN_PING_PONG 0x0008 - #define USB_NEXT_PING_PONG 0x0008 - #else - #define USB_NEXT_EP0_OUT_PING_PONG 0x0004 - #define USB_NEXT_EP0_IN_PING_PONG 0x0004 - #define USB_NEXT_PING_PONG 0x0004 - #endif - #elif defined(__C32__) - #define USB_NEXT_EP0_OUT_PING_PONG 0x0008 - #define USB_NEXT_EP0_IN_PING_PONG 0x0008 - #define USB_NEXT_PING_PONG 0x0008 - #else - #error "Not defined for this compiler" - #endif - #define EP0_OUT_EVEN 0 - #define EP0_OUT_ODD 1 - #define EP0_IN_EVEN 2 - #define EP0_IN_ODD 3 - #define EP1_OUT_EVEN 4 - #define EP1_OUT_ODD 5 - #define EP1_IN_EVEN 6 - #define EP1_IN_ODD 7 - #define EP2_OUT_EVEN 8 - #define EP2_OUT_ODD 9 - #define EP2_IN_EVEN 10 - #define EP2_IN_ODD 11 - #define EP3_OUT_EVEN 12 - #define EP3_OUT_ODD 13 - #define EP3_IN_EVEN 14 - #define EP3_IN_ODD 15 - #define EP4_OUT_EVEN 16 - #define EP4_OUT_ODD 17 - #define EP4_IN_EVEN 18 - #define EP4_IN_ODD 19 - #define EP5_OUT_EVEN 20 - #define EP5_OUT_ODD 21 - #define EP5_IN_EVEN 22 - #define EP5_IN_ODD 23 - #define EP6_OUT_EVEN 24 - #define EP6_OUT_ODD 25 - #define EP6_IN_EVEN 26 - #define EP6_IN_ODD 27 - #define EP7_OUT_EVEN 28 - #define EP7_OUT_ODD 29 - #define EP7_IN_EVEN 30 - #define EP7_IN_ODD 31 - #define EP8_OUT_EVEN 32 - #define EP8_OUT_ODD 33 - #define EP8_IN_EVEN 34 - #define EP8_IN_ODD 35 - #define EP9_OUT_EVEN 36 - #define EP9_OUT_ODD 37 - #define EP9_IN_EVEN 38 - #define EP9_IN_ODD 39 - #define EP10_OUT_EVEN 40 - #define EP10_OUT_ODD 41 - #define EP10_IN_EVEN 42 - #define EP10_IN_ODD 43 - #define EP11_OUT_EVEN 44 - #define EP11_OUT_ODD 45 - #define EP11_IN_EVEN 46 - #define EP11_IN_ODD 47 - #define EP12_OUT_EVEN 48 - #define EP12_OUT_ODD 49 - #define EP12_IN_EVEN 50 - #define EP12_IN_ODD 51 - #define EP13_OUT_EVEN 52 - #define EP13_OUT_ODD 53 - #define EP13_IN_EVEN 54 - #define EP13_IN_ODD 55 - #define EP14_OUT_EVEN 56 - #define EP14_OUT_ODD 57 - #define EP14_IN_EVEN 58 - #define EP14_IN_ODD 59 - #define EP15_OUT_EVEN 60 - #define EP15_OUT_ODD 61 - #define EP15_IN_EVEN 62 - #define EP15_IN_ODD 63 - - #define EP(ep,dir,pp) (4*ep+2*dir+pp) - - #if defined (__18CXX) || defined(__C30__) || defined __XC16__ || (__XC8) - #if (defined(__dsPIC33E__) || defined (__PIC24E__)) - #define BD(ep,dir,pp) (8*(4*ep+2*dir+pp)) - #else - #define BD(ep,dir,pp) (4*(4*ep+2*dir+pp)) - #endif - #elif defined(__C32__) - #define BD(ep,dir,pp) (8*(4*ep+2*dir+pp)) - #else - #error "Not defined for this compiler" - #endif - -#elif (USB_PING_PONG_MODE == USB_PING_PONG__ALL_BUT_EP0) - #define USB_NEXT_EP0_OUT_PING_PONG 0x0000 - #define USB_NEXT_EP0_IN_PING_PONG 0x0000 - #define USB_NEXT_PING_PONG 0x0004 - #define EP0_OUT_EVEN 0 - #define EP0_OUT_ODD 0 - #define EP0_IN_EVEN 1 - #define EP0_IN_ODD 1 - #define EP1_OUT_EVEN 2 - #define EP1_OUT_ODD 3 - #define EP1_IN_EVEN 4 - #define EP1_IN_ODD 5 - #define EP2_OUT_EVEN 6 - #define EP2_OUT_ODD 7 - #define EP2_IN_EVEN 8 - #define EP2_IN_ODD 9 - #define EP3_OUT_EVEN 10 - #define EP3_OUT_ODD 11 - #define EP3_IN_EVEN 12 - #define EP3_IN_ODD 13 - #define EP4_OUT_EVEN 14 - #define EP4_OUT_ODD 15 - #define EP4_IN_EVEN 16 - #define EP4_IN_ODD 17 - #define EP5_OUT_EVEN 18 - #define EP5_OUT_ODD 19 - #define EP5_IN_EVEN 20 - #define EP5_IN_ODD 21 - #define EP6_OUT_EVEN 22 - #define EP6_OUT_ODD 23 - #define EP6_IN_EVEN 24 - #define EP6_IN_ODD 25 - #define EP7_OUT_EVEN 26 - #define EP7_OUT_ODD 27 - #define EP7_IN_EVEN 28 - #define EP7_IN_ODD 29 - #define EP8_OUT_EVEN 30 - #define EP8_OUT_ODD 31 - #define EP8_IN_EVEN 32 - #define EP8_IN_ODD 33 - #define EP9_OUT_EVEN 34 - #define EP9_OUT_ODD 35 - #define EP9_IN_EVEN 36 - #define EP9_IN_ODD 37 - #define EP10_OUT_EVEN 38 - #define EP10_OUT_ODD 39 - #define EP10_IN_EVEN 40 - #define EP10_IN_ODD 41 - #define EP11_OUT_EVEN 42 - #define EP11_OUT_ODD 43 - #define EP11_IN_EVEN 44 - #define EP11_IN_ODD 45 - #define EP12_OUT_EVEN 46 - #define EP12_OUT_ODD 47 - #define EP12_IN_EVEN 48 - #define EP12_IN_ODD 49 - #define EP13_OUT_EVEN 50 - #define EP13_OUT_ODD 51 - #define EP13_IN_EVEN 52 - #define EP13_IN_ODD 53 - #define EP14_OUT_EVEN 54 - #define EP14_OUT_ODD 55 - #define EP14_IN_EVEN 56 - #define EP14_IN_ODD 57 - #define EP15_OUT_EVEN 58 - #define EP15_OUT_ODD 59 - #define EP15_IN_EVEN 60 - #define EP15_IN_ODD 61 - - #define EP(ep,dir,pp) (4*ep+2*dir+((ep==0)?0:(pp-2))) - #define BD(ep,dir,pp) (4*(4*ep+2*dir+((ep==0)?0:(pp-2)))) - -#else - #error "No ping pong mode defined." -#endif - -/****** Event callback enabling/disabling macros ******************** - This section of code is used to disable specific USB events that may not be - desired by the user. This can save code size and increase throughput and - decrease CPU utiliazation. -********************************************************************/ -#if defined USB_DISABLE_SUSPEND_HANDLER - #define USB_SUSPEND_HANDLER(event,pointer,size) - - #warning "Disabling the suspend handler is not recommended. Proper suspend handling is required to create a compliant USB device." -#else - #define USB_SUSPEND_HANDLER(event,pointer,size) USER_USB_CALLBACK_EVENT_HANDLER((USB_EVENT)event,pointer,size) -#endif - -#if defined USB_DISABLE_WAKEUP_FROM_SUSPEND_HANDLER - #define USB_WAKEUP_FROM_SUSPEND_HANDLER(event,pointer,size) - - #warning "Disabling the wake from suspend handler is not recommended. Proper suspend handling is required to create a compliant USB device." -#else - #define USB_WAKEUP_FROM_SUSPEND_HANDLER(event,pointer,size) USER_USB_CALLBACK_EVENT_HANDLER((USB_EVENT)event,pointer,size) -#endif - -#if defined USB_DISABLE_SOF_HANDLER - #define USB_SOF_HANDLER(event,pointer,size) -#else - #define USB_SOF_HANDLER(event,pointer,size) USER_USB_CALLBACK_EVENT_HANDLER((USB_EVENT)event,pointer,size) -#endif - -#if defined USB_DISABLE_TRANSFER_TERMINATED_HANDLER - #define USB_TRANSFER_TERMINATED_HANDLER(event,pointer,size) -#else - #define USB_TRANSFER_TERMINATED_HANDLER(event,pointer,size) USER_USB_CALLBACK_EVENT_HANDLER((USB_EVENT)event,pointer,size) -#endif - -#if defined USB_DISABLE_ERROR_HANDLER - #define USB_ERROR_HANDLER(event,pointer,size) -#else - #define USB_ERROR_HANDLER(event,pointer,size) USER_USB_CALLBACK_EVENT_HANDLER((USB_EVENT)event,pointer,size) -#endif - -#if defined USB_DISABLE_NONSTANDARD_EP0_REQUEST_HANDLER - #define USB_NONSTANDARD_EP0_REQUEST_HANDLER(event,pointer,size) -#else - #define USB_NONSTANDARD_EP0_REQUEST_HANDLER(event,pointer,size) USER_USB_CALLBACK_EVENT_HANDLER((USB_EVENT)event,pointer,size) -#endif - -#if defined USB_DISABLE_SET_DESCRIPTOR_HANDLER - #define USB_SET_DESCRIPTOR_HANDLER(event,pointer,size) -#else - #define USB_SET_DESCRIPTOR_HANDLER(event,pointer,size) USER_USB_CALLBACK_EVENT_HANDLER((USB_EVENT)event,pointer,size) -#endif - -#if defined USB_DISABLE_SET_CONFIGURATION_HANDLER - #define USB_SET_CONFIGURATION_HANDLER(event,pointer,size) -#else - #define USB_SET_CONFIGURATION_HANDLER(event,pointer,size) USER_USB_CALLBACK_EVENT_HANDLER((USB_EVENT)event,pointer,size) -#endif - -#if defined USB_DISABLE_TRANSFER_COMPLETE_HANDLER - #define USB_TRANSFER_COMPLETE_HANDLER(event,pointer,size) -#else - #define USB_TRANSFER_COMPLETE_HANDLER(event,pointer,size) USER_USB_CALLBACK_EVENT_HANDLER((USB_EVENT)event,pointer,size) -#endif - |