1 /** 2 ****************************************************************************** 3 * @file stm32f4xx_hal_pcd.h 4 * @author MCD Application Team 5 * @brief Header file of PCD HAL module. 6 ****************************************************************************** 7 * @attention 8 * 9 * <h2><center>© Copyright (c) 2016 STMicroelectronics. 10 * All rights reserved.</center></h2> 11 * 12 * This software component is licensed by ST under BSD 3-Clause license, 13 * the "License"; You may not use this file except in compliance with the 14 * License. You may obtain a copy of the License at: 15 * opensource.org/licenses/BSD-3-Clause 16 * 17 ****************************************************************************** 18 */ 19 20 /* Define to prevent recursive inclusion -------------------------------------*/ 21 #ifndef STM32F4xx_HAL_PCD_H 22 #define STM32F4xx_HAL_PCD_H 23 24 #ifdef __cplusplus 25 extern "C" { 26 #endif 27 28 /* Includes ------------------------------------------------------------------*/ 29 #include "stm32f4xx_ll_usb.h" 30 31 #if defined (USB_OTG_FS) || defined (USB_OTG_HS) 32 33 /** @addtogroup STM32F4xx_HAL_Driver 34 * @{ 35 */ 36 37 /** @addtogroup PCD 38 * @{ 39 */ 40 41 /* Exported types ------------------------------------------------------------*/ 42 /** @defgroup PCD_Exported_Types PCD Exported Types 43 * @{ 44 */ 45 46 /** 47 * @brief PCD State structure definition 48 */ 49 typedef enum 50 { 51 HAL_PCD_STATE_RESET = 0x00, 52 HAL_PCD_STATE_READY = 0x01, 53 HAL_PCD_STATE_ERROR = 0x02, 54 HAL_PCD_STATE_BUSY = 0x03, 55 HAL_PCD_STATE_TIMEOUT = 0x04 56 } PCD_StateTypeDef; 57 58 /* Device LPM suspend state */ 59 typedef enum 60 { 61 LPM_L0 = 0x00, /* on */ 62 LPM_L1 = 0x01, /* LPM L1 sleep */ 63 LPM_L2 = 0x02, /* suspend */ 64 LPM_L3 = 0x03, /* off */ 65 } PCD_LPM_StateTypeDef; 66 67 typedef enum 68 { 69 PCD_LPM_L0_ACTIVE = 0x00, /* on */ 70 PCD_LPM_L1_ACTIVE = 0x01, /* LPM L1 sleep */ 71 } PCD_LPM_MsgTypeDef; 72 73 typedef enum 74 { 75 PCD_BCD_ERROR = 0xFF, 76 PCD_BCD_CONTACT_DETECTION = 0xFE, 77 PCD_BCD_STD_DOWNSTREAM_PORT = 0xFD, 78 PCD_BCD_CHARGING_DOWNSTREAM_PORT = 0xFC, 79 PCD_BCD_DEDICATED_CHARGING_PORT = 0xFB, 80 PCD_BCD_DISCOVERY_COMPLETED = 0x00, 81 82 } PCD_BCD_MsgTypeDef; 83 84 #if defined (USB_OTG_FS) || defined (USB_OTG_HS) 85 typedef USB_OTG_GlobalTypeDef PCD_TypeDef; 86 typedef USB_OTG_CfgTypeDef PCD_InitTypeDef; 87 typedef USB_OTG_EPTypeDef PCD_EPTypeDef; 88 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ 89 90 /** 91 * @brief PCD Handle Structure definition 92 */ 93 #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) 94 typedef struct __PCD_HandleTypeDef 95 #else 96 typedef struct 97 #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ 98 { 99 PCD_TypeDef *Instance; /*!< Register base address */ 100 PCD_InitTypeDef Init; /*!< PCD required parameters */ 101 __IO uint8_t USB_Address; /*!< USB Address */ 102 PCD_EPTypeDef IN_ep[16]; /*!< IN endpoint parameters */ 103 PCD_EPTypeDef OUT_ep[16]; /*!< OUT endpoint parameters */ 104 HAL_LockTypeDef Lock; /*!< PCD peripheral status */ 105 __IO PCD_StateTypeDef State; /*!< PCD communication state */ 106 __IO uint32_t ErrorCode; /*!< PCD Error code */ 107 uint32_t Setup[12]; /*!< Setup packet buffer */ 108 PCD_LPM_StateTypeDef LPM_State; /*!< LPM State */ 109 uint32_t BESL; 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 115 uint32_t battery_charging_active; /*!< Enable or disable Battery charging. 116 This parameter can be set to ENABLE or DISABLE */ 117 void *pData; /*!< Pointer to upper stack Handler */ 118 119 #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) 120 void (* SOFCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD SOF callback */ 121 void (* SetupStageCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Setup Stage callback */ 122 void (* ResetCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Reset callback */ 123 void (* SuspendCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Suspend callback */ 124 void (* ResumeCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Resume callback */ 125 void (* ConnectCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Connect callback */ 126 void (* DisconnectCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Disconnect callback */ 127 128 void (* DataOutStageCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< USB OTG PCD Data OUT Stage callback */ 129 void (* DataInStageCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< USB OTG PCD Data IN Stage callback */ 130 void (* ISOOUTIncompleteCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< USB OTG PCD ISO OUT Incomplete callback */ 131 void (* ISOINIncompleteCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< USB OTG PCD ISO IN Incomplete callback */ 132 void (* BCDCallback)(struct __PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg); /*!< USB OTG PCD BCD callback */ 133 void (* LPMCallback)(struct __PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg); /*!< USB OTG PCD LPM callback */ 134 135 void (* MspInitCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Msp Init callback */ 136 void (* MspDeInitCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Msp DeInit callback */ 137 #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ 138 } PCD_HandleTypeDef; 139 140 /** 141 * @} 142 */ 143 144 /* Include PCD HAL Extended module */ 145 #include "stm32f4xx_hal_pcd_ex.h" 146 147 /* Exported constants --------------------------------------------------------*/ 148 /** @defgroup PCD_Exported_Constants PCD Exported Constants 149 * @{ 150 */ 151 152 /** @defgroup PCD_Speed PCD Speed 153 * @{ 154 */ 155 #define PCD_SPEED_HIGH USBD_HS_SPEED 156 #define PCD_SPEED_HIGH_IN_FULL USBD_HSINFS_SPEED 157 #define PCD_SPEED_FULL USBD_FS_SPEED 158 /** 159 * @} 160 */ 161 162 /** @defgroup PCD_PHY_Module PCD PHY Module 163 * @{ 164 */ 165 #define PCD_PHY_ULPI 1U 166 #define PCD_PHY_EMBEDDED 2U 167 #define PCD_PHY_UTMI 3U 168 /** 169 * @} 170 */ 171 172 /** @defgroup PCD_Error_Code_definition PCD Error Code definition 173 * @brief PCD Error Code definition 174 * @{ 175 */ 176 #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) 177 #define HAL_PCD_ERROR_INVALID_CALLBACK (0x00000010U) /*!< Invalid Callback error */ 178 #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ 179 180 /** 181 * @} 182 */ 183 184 /** 185 * @} 186 */ 187 188 /* Exported macros -----------------------------------------------------------*/ 189 /** @defgroup PCD_Exported_Macros PCD Exported Macros 190 * @brief macros to handle interrupts and specific clock configurations 191 * @{ 192 */ 193 #if defined (USB_OTG_FS) || defined (USB_OTG_HS) 194 #define __HAL_PCD_ENABLE(__HANDLE__) (void)USB_EnableGlobalInt ((__HANDLE__)->Instance) 195 #define __HAL_PCD_DISABLE(__HANDLE__) (void)USB_DisableGlobalInt ((__HANDLE__)->Instance) 196 197 #define __HAL_PCD_GET_FLAG(__HANDLE__, __INTERRUPT__) ((USB_ReadInterrupts((__HANDLE__)->Instance) & (__INTERRUPT__)) == (__INTERRUPT__)) 198 #define __HAL_PCD_CLEAR_FLAG(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->GINTSTS) &= (__INTERRUPT__)) 199 #define __HAL_PCD_IS_INVALID_INTERRUPT(__HANDLE__) (USB_ReadInterrupts((__HANDLE__)->Instance) == 0U) 200 201 202 #define __HAL_PCD_UNGATE_PHYCLOCK(__HANDLE__) *(__IO uint32_t *)((uint32_t)((__HANDLE__)->Instance) + USB_OTG_PCGCCTL_BASE) &= ~(USB_OTG_PCGCCTL_STOPCLK) 203 204 #define __HAL_PCD_GATE_PHYCLOCK(__HANDLE__) *(__IO uint32_t *)((uint32_t)((__HANDLE__)->Instance) + USB_OTG_PCGCCTL_BASE) |= USB_OTG_PCGCCTL_STOPCLK 205 206 #define __HAL_PCD_IS_PHY_SUSPENDED(__HANDLE__) ((*(__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 typedef void (*pPCD_BcdCallbackTypeDef)(PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg); /*!< pointer to USB OTG PCD BCD callback */ 284 285 /** 286 * @} 287 */ 288 289 HAL_StatusTypeDef HAL_PCD_RegisterCallback(PCD_HandleTypeDef *hpcd, 290 HAL_PCD_CallbackIDTypeDef CallbackID, 291 pPCD_CallbackTypeDef pCallback); 292 293 HAL_StatusTypeDef HAL_PCD_UnRegisterCallback(PCD_HandleTypeDef *hpcd, 294 HAL_PCD_CallbackIDTypeDef CallbackID); 295 296 HAL_StatusTypeDef HAL_PCD_RegisterDataOutStageCallback(PCD_HandleTypeDef *hpcd, 297 pPCD_DataOutStageCallbackTypeDef pCallback); 298 299 HAL_StatusTypeDef HAL_PCD_UnRegisterDataOutStageCallback(PCD_HandleTypeDef *hpcd); 300 301 HAL_StatusTypeDef HAL_PCD_RegisterDataInStageCallback(PCD_HandleTypeDef *hpcd, 302 pPCD_DataInStageCallbackTypeDef pCallback); 303 304 HAL_StatusTypeDef HAL_PCD_UnRegisterDataInStageCallback(PCD_HandleTypeDef *hpcd); 305 306 HAL_StatusTypeDef HAL_PCD_RegisterIsoOutIncpltCallback(PCD_HandleTypeDef *hpcd, 307 pPCD_IsoOutIncpltCallbackTypeDef pCallback); 308 309 HAL_StatusTypeDef HAL_PCD_UnRegisterIsoOutIncpltCallback(PCD_HandleTypeDef *hpcd); 310 311 HAL_StatusTypeDef HAL_PCD_RegisterIsoInIncpltCallback(PCD_HandleTypeDef *hpcd, 312 pPCD_IsoInIncpltCallbackTypeDef pCallback); 313 314 HAL_StatusTypeDef HAL_PCD_UnRegisterIsoInIncpltCallback(PCD_HandleTypeDef *hpcd); 315 316 HAL_StatusTypeDef HAL_PCD_RegisterBcdCallback(PCD_HandleTypeDef *hpcd, 317 pPCD_BcdCallbackTypeDef pCallback); 318 319 HAL_StatusTypeDef HAL_PCD_UnRegisterBcdCallback(PCD_HandleTypeDef *hpcd); 320 321 HAL_StatusTypeDef HAL_PCD_RegisterLpmCallback(PCD_HandleTypeDef *hpcd, 322 pPCD_LpmCallbackTypeDef pCallback); 323 324 HAL_StatusTypeDef HAL_PCD_UnRegisterLpmCallback(PCD_HandleTypeDef *hpcd); 325 #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ 326 /** 327 * @} 328 */ 329 330 /* I/O operation functions ***************************************************/ 331 /* Non-Blocking mode: Interrupt */ 332 /** @addtogroup PCD_Exported_Functions_Group2 Input and Output operation functions 333 * @{ 334 */ 335 HAL_StatusTypeDef HAL_PCD_Start(PCD_HandleTypeDef *hpcd); 336 HAL_StatusTypeDef HAL_PCD_Stop(PCD_HandleTypeDef *hpcd); 337 void HAL_PCD_IRQHandler(PCD_HandleTypeDef *hpcd); 338 void HAL_PCD_WKUP_IRQHandler(PCD_HandleTypeDef *hpcd); 339 340 void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd); 341 void HAL_PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd); 342 void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd); 343 void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd); 344 void HAL_PCD_ResumeCallback(PCD_HandleTypeDef *hpcd); 345 void HAL_PCD_ConnectCallback(PCD_HandleTypeDef *hpcd); 346 void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd); 347 348 void HAL_PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum); 349 void HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum); 350 void HAL_PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum); 351 void HAL_PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum); 352 /** 353 * @} 354 */ 355 356 /* Peripheral Control functions **********************************************/ 357 /** @addtogroup PCD_Exported_Functions_Group3 Peripheral Control functions 358 * @{ 359 */ 360 HAL_StatusTypeDef HAL_PCD_DevConnect(PCD_HandleTypeDef *hpcd); 361 HAL_StatusTypeDef HAL_PCD_DevDisconnect(PCD_HandleTypeDef *hpcd); 362 HAL_StatusTypeDef HAL_PCD_SetAddress(PCD_HandleTypeDef *hpcd, uint8_t address); 363 HAL_StatusTypeDef HAL_PCD_EP_Open(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, 364 uint16_t ep_mps, uint8_t ep_type); 365 366 HAL_StatusTypeDef HAL_PCD_EP_Close(PCD_HandleTypeDef *hpcd, uint8_t ep_addr); 367 HAL_StatusTypeDef HAL_PCD_EP_Receive(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, 368 uint8_t *pBuf, uint32_t len); 369 370 HAL_StatusTypeDef HAL_PCD_EP_Transmit(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, 371 uint8_t *pBuf, uint32_t len); 372 373 374 HAL_StatusTypeDef HAL_PCD_EP_SetStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr); 375 HAL_StatusTypeDef HAL_PCD_EP_ClrStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr); 376 HAL_StatusTypeDef HAL_PCD_EP_Flush(PCD_HandleTypeDef *hpcd, uint8_t ep_addr); 377 HAL_StatusTypeDef HAL_PCD_ActivateRemoteWakeup(PCD_HandleTypeDef *hpcd); 378 HAL_StatusTypeDef HAL_PCD_DeActivateRemoteWakeup(PCD_HandleTypeDef *hpcd); 379 380 uint32_t HAL_PCD_EP_GetRxCount(PCD_HandleTypeDef *hpcd, uint8_t ep_addr); 381 /** 382 * @} 383 */ 384 385 /* Peripheral State functions ************************************************/ 386 /** @addtogroup PCD_Exported_Functions_Group4 Peripheral State functions 387 * @{ 388 */ 389 PCD_StateTypeDef HAL_PCD_GetState(PCD_HandleTypeDef *hpcd); 390 /** 391 * @} 392 */ 393 394 /** 395 * @} 396 */ 397 398 /* Private constants ---------------------------------------------------------*/ 399 /** @defgroup PCD_Private_Constants PCD Private Constants 400 * @{ 401 */ 402 /** @defgroup USB_EXTI_Line_Interrupt USB EXTI line interrupt 403 * @{ 404 */ 405 #if defined (USB_OTG_FS) || defined (USB_OTG_HS) 406 #define USB_OTG_FS_WAKEUP_EXTI_LINE (0x1U << 18) /*!< USB FS EXTI Line WakeUp Interrupt */ 407 #define USB_OTG_HS_WAKEUP_EXTI_LINE (0x1U << 20) /*!< USB HS EXTI Line WakeUp Interrupt */ 408 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ 409 410 411 /** 412 * @} 413 */ 414 /** 415 * @} 416 */ 417 418 #if defined (USB_OTG_FS) || defined (USB_OTG_HS) 419 #ifndef USB_OTG_DOEPINT_OTEPSPR 420 #define USB_OTG_DOEPINT_OTEPSPR (0x1UL << 5) /*!< Status Phase Received interrupt */ 421 #endif 422 423 #ifndef USB_OTG_DOEPMSK_OTEPSPRM 424 #define USB_OTG_DOEPMSK_OTEPSPRM (0x1UL << 5) /*!< Setup Packet Received interrupt mask */ 425 #endif 426 427 #ifndef USB_OTG_DOEPINT_NAK 428 #define USB_OTG_DOEPINT_NAK (0x1UL << 13) /*!< NAK interrupt */ 429 #endif 430 431 #ifndef USB_OTG_DOEPMSK_NAKM 432 #define USB_OTG_DOEPMSK_NAKM (0x1UL << 13) /*!< OUT Packet NAK interrupt mask */ 433 #endif 434 435 #ifndef USB_OTG_DOEPINT_STPKTRX 436 #define USB_OTG_DOEPINT_STPKTRX (0x1UL << 15) /*!< Setup Packet Received interrupt */ 437 #endif 438 439 #ifndef USB_OTG_DOEPMSK_NYETM 440 #define USB_OTG_DOEPMSK_NYETM (0x1UL << 14) /*!< Setup Packet Received interrupt mask */ 441 #endif 442 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ 443 444 /* Private macros ------------------------------------------------------------*/ 445 /** @defgroup PCD_Private_Macros PCD Private Macros 446 * @{ 447 */ 448 449 /** 450 * @} 451 */ 452 453 /** 454 * @} 455 */ 456 457 /** 458 * @} 459 */ 460 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ 461 462 #ifdef __cplusplus 463 } 464 #endif 465 466 #endif /* STM32F4xx_HAL_PCD_H */ 467 468 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 469