1 /** 2 ****************************************************************************** 3 * @file stm32f7xx_hal_pcd.h 4 * @author MCD Application Team 5 * @brief Header file of PCD HAL module. 6 ****************************************************************************** 7 * @attention 8 * 9 * Copyright (c) 2017 STMicroelectronics. 10 * All rights reserved. 11 * 12 * This software is licensed under terms that can be found in the LICENSE file 13 * in the root directory of this software component. 14 * If no LICENSE file comes with this software, it is provided AS-IS. 15 * 16 ****************************************************************************** 17 */ 18 19 /* Define to prevent recursive inclusion -------------------------------------*/ 20 #ifndef STM32F7xx_HAL_PCD_H 21 #define STM32F7xx_HAL_PCD_H 22 23 #ifdef __cplusplus 24 extern "C" { 25 #endif 26 27 /* Includes ------------------------------------------------------------------*/ 28 #include "stm32f7xx_ll_usb.h" 29 30 #if defined (USB_OTG_FS) || defined (USB_OTG_HS) 31 32 /** @addtogroup STM32F7xx_HAL_Driver 33 * @{ 34 */ 35 36 /** @addtogroup PCD 37 * @{ 38 */ 39 40 /* Exported types ------------------------------------------------------------*/ 41 /** @defgroup PCD_Exported_Types PCD Exported Types 42 * @{ 43 */ 44 45 /** 46 * @brief PCD State structure definition 47 */ 48 typedef enum 49 { 50 HAL_PCD_STATE_RESET = 0x00, 51 HAL_PCD_STATE_READY = 0x01, 52 HAL_PCD_STATE_ERROR = 0x02, 53 HAL_PCD_STATE_BUSY = 0x03, 54 HAL_PCD_STATE_TIMEOUT = 0x04 55 } PCD_StateTypeDef; 56 57 /* Device LPM suspend state */ 58 typedef enum 59 { 60 LPM_L0 = 0x00, /* on */ 61 LPM_L1 = 0x01, /* LPM L1 sleep */ 62 LPM_L2 = 0x02, /* suspend */ 63 LPM_L3 = 0x03, /* off */ 64 } PCD_LPM_StateTypeDef; 65 66 typedef enum 67 { 68 PCD_LPM_L0_ACTIVE = 0x00, /* on */ 69 PCD_LPM_L1_ACTIVE = 0x01, /* LPM L1 sleep */ 70 } PCD_LPM_MsgTypeDef; 71 72 typedef enum 73 { 74 PCD_BCD_ERROR = 0xFF, 75 PCD_BCD_CONTACT_DETECTION = 0xFE, 76 PCD_BCD_STD_DOWNSTREAM_PORT = 0xFD, 77 PCD_BCD_CHARGING_DOWNSTREAM_PORT = 0xFC, 78 PCD_BCD_DEDICATED_CHARGING_PORT = 0xFB, 79 PCD_BCD_DISCOVERY_COMPLETED = 0x00, 80 81 } PCD_BCD_MsgTypeDef; 82 83 #if defined (USB_OTG_FS) || defined (USB_OTG_HS) 84 typedef USB_OTG_GlobalTypeDef PCD_TypeDef; 85 typedef USB_OTG_CfgTypeDef PCD_InitTypeDef; 86 typedef USB_OTG_EPTypeDef PCD_EPTypeDef; 87 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ 88 89 /** 90 * @brief PCD Handle Structure definition 91 */ 92 #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) 93 typedef struct __PCD_HandleTypeDef 94 #else 95 typedef struct 96 #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ 97 { 98 PCD_TypeDef *Instance; /*!< Register base address */ 99 PCD_InitTypeDef Init; /*!< PCD required parameters */ 100 __IO uint8_t USB_Address; /*!< USB Address */ 101 PCD_EPTypeDef IN_ep[16]; /*!< IN endpoint parameters */ 102 PCD_EPTypeDef OUT_ep[16]; /*!< OUT endpoint parameters */ 103 HAL_LockTypeDef Lock; /*!< PCD peripheral status */ 104 __IO PCD_StateTypeDef State; /*!< PCD communication state */ 105 __IO uint32_t ErrorCode; /*!< PCD Error code */ 106 uint32_t Setup[12]; /*!< Setup packet buffer */ 107 PCD_LPM_StateTypeDef LPM_State; /*!< LPM State */ 108 uint32_t BESL; 109 uint32_t FrameNumber; /*!< Store Current Frame number */ 110 111 112 uint32_t lpm_active; /*!< Enable or disable the Link Power Management . 113 This parameter can be set to ENABLE or DISABLE */ 114 void *pData; /*!< Pointer to upper stack Handler */ 115 116 #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) 117 void (* SOFCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD SOF callback */ 118 void (* SetupStageCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Setup Stage callback */ 119 void (* ResetCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Reset callback */ 120 void (* SuspendCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Suspend callback */ 121 void (* ResumeCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Resume callback */ 122 void (* ConnectCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Connect callback */ 123 void (* DisconnectCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Disconnect callback */ 124 125 void (* DataOutStageCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< USB OTG PCD Data OUT Stage callback */ 126 void (* DataInStageCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< USB OTG PCD Data IN Stage callback */ 127 void (* ISOOUTIncompleteCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< USB OTG PCD ISO OUT Incomplete callback */ 128 void (* ISOINIncompleteCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< USB OTG PCD ISO IN Incomplete callback */ 129 void (* LPMCallback)(struct __PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg); /*!< USB OTG PCD LPM callback */ 130 131 void (* MspInitCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Msp Init callback */ 132 void (* MspDeInitCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Msp DeInit callback */ 133 #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ 134 } PCD_HandleTypeDef; 135 136 /** 137 * @} 138 */ 139 140 /* Include PCD HAL Extended module */ 141 #include "stm32f7xx_hal_pcd_ex.h" 142 143 /* Exported constants --------------------------------------------------------*/ 144 /** @defgroup PCD_Exported_Constants PCD Exported Constants 145 * @{ 146 */ 147 148 /** @defgroup PCD_Speed PCD Speed 149 * @{ 150 */ 151 #define PCD_SPEED_HIGH USBD_HS_SPEED 152 #define PCD_SPEED_HIGH_IN_FULL USBD_HSINFS_SPEED 153 #define PCD_SPEED_FULL USBD_FS_SPEED 154 /** 155 * @} 156 */ 157 158 /** @defgroup PCD_PHY_Module PCD PHY Module 159 * @{ 160 */ 161 #define PCD_PHY_ULPI 1U 162 #define PCD_PHY_EMBEDDED 2U 163 #define PCD_PHY_UTMI 3U 164 /** 165 * @} 166 */ 167 168 /** @defgroup PCD_Error_Code_definition PCD Error Code definition 169 * @brief PCD Error Code definition 170 * @{ 171 */ 172 #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) 173 #define HAL_PCD_ERROR_INVALID_CALLBACK (0x00000010U) /*!< Invalid Callback error */ 174 #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ 175 176 /** 177 * @} 178 */ 179 180 /** 181 * @} 182 */ 183 184 /* Exported macros -----------------------------------------------------------*/ 185 /** @defgroup PCD_Exported_Macros PCD Exported Macros 186 * @brief macros to handle interrupts and specific clock configurations 187 * @{ 188 */ 189 #if defined (USB_OTG_FS) || defined (USB_OTG_HS) 190 #define __HAL_PCD_ENABLE(__HANDLE__) (void)USB_EnableGlobalInt ((__HANDLE__)->Instance) 191 #define __HAL_PCD_DISABLE(__HANDLE__) (void)USB_DisableGlobalInt ((__HANDLE__)->Instance) 192 193 #define __HAL_PCD_GET_FLAG(__HANDLE__, __INTERRUPT__) \ 194 ((USB_ReadInterrupts((__HANDLE__)->Instance) & (__INTERRUPT__)) == (__INTERRUPT__)) 195 196 #define __HAL_PCD_CLEAR_FLAG(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->GINTSTS) &= (__INTERRUPT__)) 197 #define __HAL_PCD_IS_INVALID_INTERRUPT(__HANDLE__) (USB_ReadInterrupts((__HANDLE__)->Instance) == 0U) 198 199 #define __HAL_PCD_UNGATE_PHYCLOCK(__HANDLE__) \ 200 *(__IO uint32_t *)((uint32_t)((__HANDLE__)->Instance) + USB_OTG_PCGCCTL_BASE) &= ~(USB_OTG_PCGCCTL_STOPCLK) 201 202 #define __HAL_PCD_GATE_PHYCLOCK(__HANDLE__) \ 203 *(__IO uint32_t *)((uint32_t)((__HANDLE__)->Instance) + USB_OTG_PCGCCTL_BASE) |= USB_OTG_PCGCCTL_STOPCLK 204 205 #define __HAL_PCD_IS_PHY_SUSPENDED(__HANDLE__) \ 206 ((*(__IO uint32_t *)((uint32_t)((__HANDLE__)->Instance) + USB_OTG_PCGCCTL_BASE)) & 0x10U) 207 208 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_IT() EXTI->IMR |= (USB_OTG_HS_WAKEUP_EXTI_LINE) 209 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_DISABLE_IT() EXTI->IMR &= ~(USB_OTG_HS_WAKEUP_EXTI_LINE) 210 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_GET_FLAG() EXTI->PR & (USB_OTG_HS_WAKEUP_EXTI_LINE) 211 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_CLEAR_FLAG() EXTI->PR = (USB_OTG_HS_WAKEUP_EXTI_LINE) 212 213 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_RISING_EDGE() \ 214 do { \ 215 EXTI->FTSR &= ~(USB_OTG_HS_WAKEUP_EXTI_LINE); \ 216 EXTI->RTSR |= USB_OTG_HS_WAKEUP_EXTI_LINE; \ 217 } while(0U) 218 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_ENABLE_IT() EXTI->IMR |= USB_OTG_FS_WAKEUP_EXTI_LINE 219 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_DISABLE_IT() EXTI->IMR &= ~(USB_OTG_FS_WAKEUP_EXTI_LINE) 220 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_GET_FLAG() EXTI->PR & (USB_OTG_FS_WAKEUP_EXTI_LINE) 221 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_CLEAR_FLAG() EXTI->PR = USB_OTG_FS_WAKEUP_EXTI_LINE 222 223 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_ENABLE_RISING_EDGE() \ 224 do { \ 225 EXTI->FTSR &= ~(USB_OTG_FS_WAKEUP_EXTI_LINE); \ 226 EXTI->RTSR |= USB_OTG_FS_WAKEUP_EXTI_LINE; \ 227 } while(0U) 228 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ 229 230 231 /** 232 * @} 233 */ 234 235 /* Exported functions --------------------------------------------------------*/ 236 /** @addtogroup PCD_Exported_Functions PCD Exported Functions 237 * @{ 238 */ 239 240 /* Initialization/de-initialization functions ********************************/ 241 /** @addtogroup PCD_Exported_Functions_Group1 Initialization and de-initialization functions 242 * @{ 243 */ 244 HAL_StatusTypeDef HAL_PCD_Init(PCD_HandleTypeDef *hpcd); 245 HAL_StatusTypeDef HAL_PCD_DeInit(PCD_HandleTypeDef *hpcd); 246 void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd); 247 void HAL_PCD_MspDeInit(PCD_HandleTypeDef *hpcd); 248 249 #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) 250 /** @defgroup HAL_PCD_Callback_ID_enumeration_definition HAL USB OTG PCD Callback ID enumeration definition 251 * @brief HAL USB OTG PCD Callback ID enumeration definition 252 * @{ 253 */ 254 typedef enum 255 { 256 HAL_PCD_SOF_CB_ID = 0x01, /*!< USB PCD SOF callback ID */ 257 HAL_PCD_SETUPSTAGE_CB_ID = 0x02, /*!< USB PCD Setup Stage callback ID */ 258 HAL_PCD_RESET_CB_ID = 0x03, /*!< USB PCD Reset callback ID */ 259 HAL_PCD_SUSPEND_CB_ID = 0x04, /*!< USB PCD Suspend callback ID */ 260 HAL_PCD_RESUME_CB_ID = 0x05, /*!< USB PCD Resume callback ID */ 261 HAL_PCD_CONNECT_CB_ID = 0x06, /*!< USB PCD Connect callback ID */ 262 HAL_PCD_DISCONNECT_CB_ID = 0x07, /*!< USB PCD Disconnect callback ID */ 263 264 HAL_PCD_MSPINIT_CB_ID = 0x08, /*!< USB PCD MspInit callback ID */ 265 HAL_PCD_MSPDEINIT_CB_ID = 0x09 /*!< USB PCD MspDeInit callback ID */ 266 267 } HAL_PCD_CallbackIDTypeDef; 268 /** 269 * @} 270 */ 271 272 /** @defgroup HAL_PCD_Callback_pointer_definition HAL USB OTG PCD Callback pointer definition 273 * @brief HAL USB OTG PCD Callback pointer definition 274 * @{ 275 */ 276 277 typedef void (*pPCD_CallbackTypeDef)(PCD_HandleTypeDef *hpcd); /*!< pointer to a common USB OTG PCD callback function */ 278 typedef void (*pPCD_DataOutStageCallbackTypeDef)(PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< pointer to USB OTG PCD Data OUT Stage callback */ 279 typedef void (*pPCD_DataInStageCallbackTypeDef)(PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< pointer to USB OTG PCD Data IN Stage callback */ 280 typedef void (*pPCD_IsoOutIncpltCallbackTypeDef)(PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< pointer to USB OTG PCD ISO OUT Incomplete callback */ 281 typedef void (*pPCD_IsoInIncpltCallbackTypeDef)(PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< pointer to USB OTG PCD ISO IN Incomplete callback */ 282 typedef void (*pPCD_LpmCallbackTypeDef)(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg); /*!< pointer to USB OTG PCD LPM callback */ 283 284 /** 285 * @} 286 */ 287 288 HAL_StatusTypeDef HAL_PCD_RegisterCallback(PCD_HandleTypeDef *hpcd, HAL_PCD_CallbackIDTypeDef CallbackID, 289 pPCD_CallbackTypeDef pCallback); 290 291 HAL_StatusTypeDef HAL_PCD_UnRegisterCallback(PCD_HandleTypeDef *hpcd, HAL_PCD_CallbackIDTypeDef CallbackID); 292 293 HAL_StatusTypeDef HAL_PCD_RegisterDataOutStageCallback(PCD_HandleTypeDef *hpcd, 294 pPCD_DataOutStageCallbackTypeDef pCallback); 295 296 HAL_StatusTypeDef HAL_PCD_UnRegisterDataOutStageCallback(PCD_HandleTypeDef *hpcd); 297 298 HAL_StatusTypeDef HAL_PCD_RegisterDataInStageCallback(PCD_HandleTypeDef *hpcd, 299 pPCD_DataInStageCallbackTypeDef pCallback); 300 301 HAL_StatusTypeDef HAL_PCD_UnRegisterDataInStageCallback(PCD_HandleTypeDef *hpcd); 302 303 HAL_StatusTypeDef HAL_PCD_RegisterIsoOutIncpltCallback(PCD_HandleTypeDef *hpcd, 304 pPCD_IsoOutIncpltCallbackTypeDef pCallback); 305 306 HAL_StatusTypeDef HAL_PCD_UnRegisterIsoOutIncpltCallback(PCD_HandleTypeDef *hpcd); 307 308 HAL_StatusTypeDef HAL_PCD_RegisterIsoInIncpltCallback(PCD_HandleTypeDef *hpcd, 309 pPCD_IsoInIncpltCallbackTypeDef pCallback); 310 311 HAL_StatusTypeDef HAL_PCD_UnRegisterIsoInIncpltCallback(PCD_HandleTypeDef *hpcd); 312 313 HAL_StatusTypeDef HAL_PCD_RegisterLpmCallback(PCD_HandleTypeDef *hpcd, pPCD_LpmCallbackTypeDef pCallback); 314 HAL_StatusTypeDef HAL_PCD_UnRegisterLpmCallback(PCD_HandleTypeDef *hpcd); 315 #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ 316 /** 317 * @} 318 */ 319 320 /* I/O operation functions ***************************************************/ 321 /* Non-Blocking mode: Interrupt */ 322 /** @addtogroup PCD_Exported_Functions_Group2 Input and Output operation functions 323 * @{ 324 */ 325 HAL_StatusTypeDef HAL_PCD_Start(PCD_HandleTypeDef *hpcd); 326 HAL_StatusTypeDef HAL_PCD_Stop(PCD_HandleTypeDef *hpcd); 327 void HAL_PCD_IRQHandler(PCD_HandleTypeDef *hpcd); 328 void HAL_PCD_WKUP_IRQHandler(PCD_HandleTypeDef *hpcd); 329 330 void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd); 331 void HAL_PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd); 332 void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd); 333 void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd); 334 void HAL_PCD_ResumeCallback(PCD_HandleTypeDef *hpcd); 335 void HAL_PCD_ConnectCallback(PCD_HandleTypeDef *hpcd); 336 void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd); 337 338 void HAL_PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum); 339 void HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum); 340 void HAL_PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum); 341 void HAL_PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum); 342 /** 343 * @} 344 */ 345 346 /* Peripheral Control functions **********************************************/ 347 /** @addtogroup PCD_Exported_Functions_Group3 Peripheral Control functions 348 * @{ 349 */ 350 HAL_StatusTypeDef HAL_PCD_DevConnect(PCD_HandleTypeDef *hpcd); 351 HAL_StatusTypeDef HAL_PCD_DevDisconnect(PCD_HandleTypeDef *hpcd); 352 HAL_StatusTypeDef HAL_PCD_SetAddress(PCD_HandleTypeDef *hpcd, uint8_t address); 353 HAL_StatusTypeDef HAL_PCD_EP_Open(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint16_t ep_mps, uint8_t ep_type); 354 HAL_StatusTypeDef HAL_PCD_EP_Close(PCD_HandleTypeDef *hpcd, uint8_t ep_addr); 355 HAL_StatusTypeDef HAL_PCD_EP_Receive(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint32_t len); 356 HAL_StatusTypeDef HAL_PCD_EP_Transmit(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint32_t len); 357 HAL_StatusTypeDef HAL_PCD_EP_SetStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr); 358 HAL_StatusTypeDef HAL_PCD_EP_ClrStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr); 359 HAL_StatusTypeDef HAL_PCD_EP_Flush(PCD_HandleTypeDef *hpcd, uint8_t ep_addr); 360 HAL_StatusTypeDef HAL_PCD_EP_Abort(PCD_HandleTypeDef *hpcd, uint8_t ep_addr); 361 HAL_StatusTypeDef HAL_PCD_ActivateRemoteWakeup(PCD_HandleTypeDef *hpcd); 362 HAL_StatusTypeDef HAL_PCD_DeActivateRemoteWakeup(PCD_HandleTypeDef *hpcd); 363 HAL_StatusTypeDef HAL_PCD_SetTestMode(PCD_HandleTypeDef *hpcd, uint8_t testmode); 364 365 uint32_t HAL_PCD_EP_GetRxCount(PCD_HandleTypeDef *hpcd, uint8_t ep_addr); 366 /** 367 * @} 368 */ 369 370 /* Peripheral State functions ************************************************/ 371 /** @addtogroup PCD_Exported_Functions_Group4 Peripheral State functions 372 * @{ 373 */ 374 PCD_StateTypeDef HAL_PCD_GetState(PCD_HandleTypeDef *hpcd); 375 /** 376 * @} 377 */ 378 379 /** 380 * @} 381 */ 382 383 /* Private constants ---------------------------------------------------------*/ 384 /** @defgroup PCD_Private_Constants PCD Private Constants 385 * @{ 386 */ 387 /** @defgroup USB_EXTI_Line_Interrupt USB EXTI line interrupt 388 * @{ 389 */ 390 #if defined (USB_OTG_FS) || defined (USB_OTG_HS) 391 #define USB_OTG_FS_WAKEUP_EXTI_LINE (0x1U << 18) /*!< USB FS EXTI Line WakeUp Interrupt */ 392 #define USB_OTG_HS_WAKEUP_EXTI_LINE (0x1U << 20) /*!< USB HS EXTI Line WakeUp Interrupt */ 393 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ 394 395 396 /** 397 * @} 398 */ 399 /** 400 * @} 401 */ 402 403 #if defined (USB_OTG_FS) || defined (USB_OTG_HS) 404 #ifndef USB_OTG_DOEPINT_OTEPSPR 405 #define USB_OTG_DOEPINT_OTEPSPR (0x1UL << 5) /*!< Status Phase Received interrupt */ 406 #endif /* defined USB_OTG_DOEPINT_OTEPSPR */ 407 408 #ifndef USB_OTG_DOEPMSK_OTEPSPRM 409 #define USB_OTG_DOEPMSK_OTEPSPRM (0x1UL << 5) /*!< Setup Packet Received interrupt mask */ 410 #endif /* defined USB_OTG_DOEPMSK_OTEPSPRM */ 411 412 #ifndef USB_OTG_DOEPINT_NAK 413 #define USB_OTG_DOEPINT_NAK (0x1UL << 13) /*!< NAK interrupt */ 414 #endif /* defined USB_OTG_DOEPINT_NAK */ 415 416 #ifndef USB_OTG_DOEPMSK_NAKM 417 #define USB_OTG_DOEPMSK_NAKM (0x1UL << 13) /*!< OUT Packet NAK interrupt mask */ 418 #endif /* defined USB_OTG_DOEPMSK_NAKM */ 419 420 #ifndef USB_OTG_DOEPINT_STPKTRX 421 #define USB_OTG_DOEPINT_STPKTRX (0x1UL << 15) /*!< Setup Packet Received interrupt */ 422 #endif /* defined USB_OTG_DOEPINT_STPKTRX */ 423 424 #ifndef USB_OTG_DOEPMSK_NYETM 425 #define USB_OTG_DOEPMSK_NYETM (0x1UL << 14) /*!< Setup Packet Received interrupt mask */ 426 #endif /* defined USB_OTG_DOEPMSK_NYETM */ 427 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ 428 429 /* Private macros ------------------------------------------------------------*/ 430 /** @defgroup PCD_Private_Macros PCD Private Macros 431 * @{ 432 */ 433 434 /** 435 * @} 436 */ 437 438 /** 439 * @} 440 */ 441 442 /** 443 * @} 444 */ 445 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ 446 447 #ifdef __cplusplus 448 } 449 #endif 450 451 #endif /* STM32F7xx_HAL_PCD_H */ 452