65 #ifndef __ENDPOINT_LPC11UXX_H__
66 #define __ENDPOINT_LPC11UXX_H__
68 #include "../EndpointCommon.h"
70 #if defined(__cplusplus)
74 #if !defined(__INCLUDE_FROM_USB_DRIVER)
75 #error Do not include this file directly. Include lpcroot/libraries/LPCUSBlib/Drivers/USB/USB.h instead.
78 #if !defined(__DOXYGEN__)
80 #define ENDPOINT_DETAILS_MAXEP 5
82 #if defined(USB_DEVICE_ROM_DRIVER)
85 const unsigned p_usbd;
86 const unsigned p_clib;
87 const unsigned p_cand;
88 #ifdef PWRROMD_PRESENT
91 const unsigned p_pwrd;
93 #ifdef DIVROMD_PRESENT
94 const LPC_ROM_DIV_STRUCT *pROMDiv;
96 const unsigned p_dev1;
98 const unsigned p_dev2;
99 const unsigned p_dev3;
100 const unsigned p_dev4;
101 } ROM_FUNCTION_TABLE;
103 #define ROM_FUNCTION_TABLE_PTR_ADDR (0x1FFF1FF8UL)
104 #define ROM_USBD_PTR ((*(ROM_FUNCTION_TABLE * *) (ROM_FUNCTION_TABLE_PTR_ADDR))->p_usbd)
106 #define ROMDRIVER_USB0_BASE LPC_USB_BASE
107 #define ROMDRIVER_USB1_BASE LPC_USB_BASE
108 #define ROMDRIVER_MEM_SIZE 0x500
109 extern uint8_t usb_RomDriver_buffer[ROMDRIVER_MEM_SIZE];
111 #define ROMDRIVER_MSC_MEM_SIZE 0x100
112 extern uint8_t usb_RomDriver_MSC_buffer[ROMDRIVER_MSC_MEM_SIZE];
114 #define ROMDRIVER_CDC_MEM_SIZE 0x8
115 extern uint8_t usb_RomDriver_CDC_buffer[ROMDRIVER_CDC_MEM_SIZE];
116 #define ROMDRIVER_CDC_DATA_BUFFER_SIZE 64
117 #if (USB_FORCED_FULLSPEED)
118 #define CDC_MAX_BULK_EP_SIZE 64
120 #define CDC_MAX_BULK_EP_SIZE 512
122 extern uint8_t UsbdCdc_EPIN_buffer[CDC_MAX_BULK_EP_SIZE];
123 extern uint8_t UsbdCdc_EPOUT_buffer[CDC_MAX_BULK_EP_SIZE];
125 #define ROMDRIVER_HID_MEM_SIZE 0x8
126 extern uint8_t usb_RomDriver_HID_buffer[ROMDRIVER_HID_MEM_SIZE];
132 bool Endpoint_ConfigureEndpoint_Prv(
const uint8_t Number,
133 const uint8_t UECFG0XData,
134 const uint8_t UECFG1XData);
137 #define USED_PHYSICAL_ENDPOINTS (ENDPOINT_DETAILS_MAXEP * 2)
139 #define USB_EN (0x1 << 7)
140 #define USB_SETUP_RCVD (0x1 << 8)
141 #define USB_PLL_ON (0x1 << 9)
142 #define USB_LPM (0x1 << 11)
143 #define USB_IntOnNAK_AO (0x1 << 12)
144 #define USB_IntOnNAK_AI (0x1 << 13)
145 #define USB_IntOnNAK_CO (0x1 << 14)
146 #define USB_IntOnNAK_CI (0x1 << 15)
147 #define USB_DCON (0x1 << 16)
148 #define USB_DSUS (0x1 << 17)
149 #define USB_LPM_SUS (0x1 << 19)
150 #define USB_REMOTE_WAKE (0x1 << 20)
151 #define USB_DCON_C (0x1 << 24)
152 #define USB_DSUS_C (0x1 << 25)
153 #define USB_DRESET_C (0x1 << 26)
154 #define USB_VBUS_DBOUNCE (0x1 << 28)
156 #define EP0_INT (0x1 << 0)
157 #define EP1_INT (0x1 << 1)
158 #define EP2_INT (0x1 << 2)
159 #define EP3_INT (0x1 << 3)
160 #define EP4_INT (0x1 << 4)
161 #define EP5_INT (0x1 << 5)
162 #define EP6_INT (0x1 << 6)
163 #define EP7_INT (0x1 << 7)
164 #define EP8_INT (0x1 << 8)
165 #define EP9_INT (0x1 << 9)
166 #define FRAME_INT (0x1 << 30)
167 #define DEV_STAT_INT (0x80000000)
169 #define PKT_LNGTH_MASK 0x000003FF
171 #define ERR_NOERROR 0x00
172 #define ERR_PID_ENCODE 0x01
173 #define ERR_UNKNOWN_PID 0x02
174 #define ERR_UNEXPECT_PKT 0x03
175 #define ERR_TCRC 0x04
176 #define ERR_DCRC 0x05
177 #define ERR_TIMEOUT 0x06
178 #define ERR_BABBIE 0x07
179 #define ERR_EOF_PKT 0x08
180 #define ERR_TX_RX_NAK 0x09
181 #define ERR_SENT_STALL 0x0A
182 #define ERR_BUF_OVERRUN 0x0B
183 #define ERR_SENT_EPT_PKT 0x0C
184 #define ERR_BIT_STUFF 0x0D
185 #define ERR_SYNC 0x0E
186 #define ERR_TOGGLE_BIT 0x0F
196 uint16_t totalpackets, uint16_t dummypackets);
204 const uint8_t Banks) ;
289 return EndPointCmdStsList[PhyEP][0].
Active ?
false :
true;
354 EndPointCmdStsList[1][0].
Stall = 1;
382 #if (!defined(FIXED_CONTROL_ENDPOINT_SIZE) || defined(__DOXYGEN__))
385 #define USB_Device_ControlEndpointSize FIXED_CONTROL_ENDPOINT_SIZE
392 #if defined(__cplusplus)