Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:36

0001 /**
0002   ******************************************************************************
0003   * @file    stm32h7xx_hal_pcd.h
0004   * @author  MCD Application Team
0005   * @brief   Header file of PCD HAL module.
0006   ******************************************************************************
0007   * @attention
0008   *
0009   * Copyright (c) 2017 STMicroelectronics.
0010   * All rights reserved.
0011   *
0012   * This software is licensed under terms that can be found in the LICENSE file
0013   * in the root directory of this software component.
0014   * If no LICENSE file comes with this software, it is provided AS-IS.
0015   *
0016   ******************************************************************************
0017   */
0018 
0019 /* Define to prevent recursive inclusion -------------------------------------*/
0020 #ifndef STM32H7xx_HAL_PCD_H
0021 #define STM32H7xx_HAL_PCD_H
0022 
0023 #ifdef __cplusplus
0024 extern "C" {
0025 #endif
0026 
0027 /* Includes ------------------------------------------------------------------*/
0028 #include "stm32h7xx_ll_usb.h"
0029 
0030 #if defined (USB_OTG_FS) || defined (USB_OTG_HS)
0031 
0032 /** @addtogroup STM32H7xx_HAL_Driver
0033   * @{
0034   */
0035 
0036 /** @addtogroup PCD
0037   * @{
0038   */
0039 
0040 /* Exported types ------------------------------------------------------------*/
0041 /** @defgroup PCD_Exported_Types PCD Exported Types
0042   * @ingroup RTEMSBSPsARMSTM32H7
0043   * @{
0044   */
0045 
0046 /**
0047   * @brief  PCD State structure definition
0048   */
0049 typedef enum
0050 {
0051   HAL_PCD_STATE_RESET   = 0x00,
0052   HAL_PCD_STATE_READY   = 0x01,
0053   HAL_PCD_STATE_ERROR   = 0x02,
0054   HAL_PCD_STATE_BUSY    = 0x03,
0055   HAL_PCD_STATE_TIMEOUT = 0x04
0056 } PCD_StateTypeDef;
0057 
0058 /* Device LPM suspend state */
0059 typedef enum
0060 {
0061   LPM_L0 = 0x00, /* on */
0062   LPM_L1 = 0x01, /* LPM L1 sleep */
0063   LPM_L2 = 0x02, /* suspend */
0064   LPM_L3 = 0x03, /* off */
0065 } PCD_LPM_StateTypeDef;
0066 
0067 typedef enum
0068 {
0069   PCD_LPM_L0_ACTIVE = 0x00, /* on */
0070   PCD_LPM_L1_ACTIVE = 0x01, /* LPM L1 sleep */
0071 } PCD_LPM_MsgTypeDef;
0072 
0073 typedef enum
0074 {
0075   PCD_BCD_ERROR                     = 0xFF,
0076   PCD_BCD_CONTACT_DETECTION         = 0xFE,
0077   PCD_BCD_STD_DOWNSTREAM_PORT       = 0xFD,
0078   PCD_BCD_CHARGING_DOWNSTREAM_PORT  = 0xFC,
0079   PCD_BCD_DEDICATED_CHARGING_PORT   = 0xFB,
0080   PCD_BCD_DISCOVERY_COMPLETED       = 0x00,
0081 
0082 } PCD_BCD_MsgTypeDef;
0083 
0084 #if defined (USB_OTG_FS) || defined (USB_OTG_HS)
0085 typedef USB_OTG_GlobalTypeDef  PCD_TypeDef;
0086 typedef USB_OTG_CfgTypeDef     PCD_InitTypeDef;
0087 typedef USB_OTG_EPTypeDef      PCD_EPTypeDef;
0088 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
0089 
0090 /**
0091   * @brief  PCD Handle Structure definition
0092   */
0093 #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
0094 typedef struct __PCD_HandleTypeDef
0095 #else
0096 typedef struct
0097 #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
0098 {
0099   PCD_TypeDef             *Instance;   /*!< Register base address             */
0100   PCD_InitTypeDef         Init;        /*!< PCD required parameters           */
0101   __IO uint8_t            USB_Address; /*!< USB Address                       */
0102   PCD_EPTypeDef           IN_ep[16];   /*!< IN endpoint parameters            */
0103   PCD_EPTypeDef           OUT_ep[16];  /*!< OUT endpoint parameters           */
0104   HAL_LockTypeDef         Lock;        /*!< PCD peripheral status             */
0105   __IO PCD_StateTypeDef   State;       /*!< PCD communication state           */
0106   __IO  uint32_t          ErrorCode;   /*!< PCD Error code                    */
0107   uint32_t                Setup[12];   /*!< Setup packet buffer               */
0108   PCD_LPM_StateTypeDef    LPM_State;   /*!< LPM State                         */
0109   uint32_t                BESL;
0110   uint32_t                FrameNumber; /*!< Store Current Frame number        */
0111 
0112 
0113   uint32_t lpm_active;                 /*!< Enable or disable the Link Power Management .
0114                                        This parameter can be set to ENABLE or DISABLE        */
0115 
0116   uint32_t battery_charging_active;    /*!< Enable or disable Battery charging.
0117                                        This parameter can be set to ENABLE or DISABLE        */
0118   void                    *pData;      /*!< Pointer to upper stack Handler */
0119 
0120 #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
0121   void (* SOFCallback)(struct __PCD_HandleTypeDef *hpcd);                              /*!< USB OTG PCD SOF callback                */
0122   void (* SetupStageCallback)(struct __PCD_HandleTypeDef *hpcd);                       /*!< USB OTG PCD Setup Stage callback        */
0123   void (* ResetCallback)(struct __PCD_HandleTypeDef *hpcd);                            /*!< USB OTG PCD Reset callback              */
0124   void (* SuspendCallback)(struct __PCD_HandleTypeDef *hpcd);                          /*!< USB OTG PCD Suspend callback            */
0125   void (* ResumeCallback)(struct __PCD_HandleTypeDef *hpcd);                           /*!< USB OTG PCD Resume callback             */
0126   void (* ConnectCallback)(struct __PCD_HandleTypeDef *hpcd);                          /*!< USB OTG PCD Connect callback            */
0127   void (* DisconnectCallback)(struct __PCD_HandleTypeDef *hpcd);                       /*!< USB OTG PCD Disconnect callback         */
0128 
0129   void (* DataOutStageCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum);      /*!< USB OTG PCD Data OUT Stage callback     */
0130   void (* DataInStageCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum);       /*!< USB OTG PCD Data IN Stage callback      */
0131   void (* ISOOUTIncompleteCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum);  /*!< USB OTG PCD ISO OUT Incomplete callback */
0132   void (* ISOINIncompleteCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum);   /*!< USB OTG PCD ISO IN Incomplete callback  */
0133   void (* BCDCallback)(struct __PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg);      /*!< USB OTG PCD BCD callback                */
0134   void (* LPMCallback)(struct __PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg);      /*!< USB OTG PCD LPM callback                */
0135 
0136   void (* MspInitCallback)(struct __PCD_HandleTypeDef *hpcd);                          /*!< USB OTG PCD Msp Init callback           */
0137   void (* MspDeInitCallback)(struct __PCD_HandleTypeDef *hpcd);                        /*!< USB OTG PCD Msp DeInit callback         */
0138 #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
0139 } PCD_HandleTypeDef;
0140 
0141 /**
0142   * @}
0143   */
0144 
0145 /* Include PCD HAL Extended module */
0146 #include "stm32h7xx_hal_pcd_ex.h"
0147 
0148 /* Exported constants --------------------------------------------------------*/
0149 /** @defgroup PCD_Exported_Constants PCD Exported Constants
0150   * @ingroup RTEMSBSPsARMSTM32H7
0151   * @{
0152   */
0153 
0154 /** @defgroup PCD_Speed PCD Speed
0155   * @ingroup RTEMSBSPsARMSTM32H7
0156   * @{
0157   */
0158 #define PCD_SPEED_HIGH               USBD_HS_SPEED
0159 #define PCD_SPEED_HIGH_IN_FULL       USBD_HSINFS_SPEED
0160 #define PCD_SPEED_FULL               USBD_FS_SPEED
0161 /**
0162   * @}
0163   */
0164 
0165 /** @defgroup PCD_PHY_Module PCD PHY Module
0166   * @ingroup RTEMSBSPsARMSTM32H7
0167   * @{
0168   */
0169 #define PCD_PHY_ULPI                 1U
0170 #define PCD_PHY_EMBEDDED             2U
0171 #define PCD_PHY_UTMI                 3U
0172 /**
0173   * @}
0174   */
0175 
0176 /** @defgroup PCD_Error_Code_definition PCD Error Code definition
0177   * @ingroup RTEMSBSPsARMSTM32H7
0178   * @brief  PCD Error Code definition
0179   * @{
0180   */
0181 #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
0182 #define  HAL_PCD_ERROR_INVALID_CALLBACK                        (0x00000010U)    /*!< Invalid Callback error  */
0183 #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
0184 
0185 /**
0186   * @}
0187   */
0188 
0189 /**
0190   * @}
0191   */
0192 
0193 /* Exported macros -----------------------------------------------------------*/
0194 /** @defgroup PCD_Exported_Macros PCD Exported Macros
0195   * @ingroup RTEMSBSPsARMSTM32H7
0196   *  @brief macros to handle interrupts and specific clock configurations
0197   * @{
0198   */
0199 #define __HAL_PCD_ENABLE(__HANDLE__)                       (void)USB_EnableGlobalInt ((__HANDLE__)->Instance)
0200 #define __HAL_PCD_DISABLE(__HANDLE__)                      (void)USB_DisableGlobalInt ((__HANDLE__)->Instance)
0201 
0202 #define __HAL_PCD_GET_FLAG(__HANDLE__, __INTERRUPT__) \
0203   ((USB_ReadInterrupts((__HANDLE__)->Instance) & (__INTERRUPT__)) == (__INTERRUPT__))
0204 
0205 #if defined (USB_OTG_FS) || defined (USB_OTG_HS)
0206 #define __HAL_PCD_CLEAR_FLAG(__HANDLE__, __INTERRUPT__)    (((__HANDLE__)->Instance->GINTSTS) &= (__INTERRUPT__))
0207 #define __HAL_PCD_IS_INVALID_INTERRUPT(__HANDLE__)         (USB_ReadInterrupts((__HANDLE__)->Instance) == 0U)
0208 
0209 #define __HAL_PCD_UNGATE_PHYCLOCK(__HANDLE__) \
0210   *(__IO uint32_t *)((uint32_t)((__HANDLE__)->Instance) + USB_OTG_PCGCCTL_BASE) &= ~(USB_OTG_PCGCCTL_STOPCLK)
0211 
0212 #define __HAL_PCD_GATE_PHYCLOCK(__HANDLE__) \
0213   *(__IO uint32_t *)((uint32_t)((__HANDLE__)->Instance) + USB_OTG_PCGCCTL_BASE) |= USB_OTG_PCGCCTL_STOPCLK
0214 
0215 #define __HAL_PCD_IS_PHY_SUSPENDED(__HANDLE__) \
0216   ((*(__IO uint32_t *)((uint32_t)((__HANDLE__)->Instance) + USB_OTG_PCGCCTL_BASE)) & 0x10U)
0217 
0218 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_IT()    EXTI_D1->IMR2 |= (USB_OTG_HS_WAKEUP_EXTI_LINE)
0219 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_DISABLE_IT()   EXTI_D1->IMR2 &= ~(USB_OTG_HS_WAKEUP_EXTI_LINE)
0220 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_ENABLE_IT()    EXTI_D1->IMR2 |= (USB_OTG_FS_WAKEUP_EXTI_LINE)
0221 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_DISABLE_IT()   EXTI_D1->IMR2 &= ~(USB_OTG_FS_WAKEUP_EXTI_LINE)
0222 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
0223 
0224 
0225 /**
0226   * @}
0227   */
0228 
0229 /* Exported functions --------------------------------------------------------*/
0230 /** @addtogroup PCD_Exported_Functions PCD Exported Functions
0231   * @{
0232   */
0233 
0234 /* Initialization/de-initialization functions  ********************************/
0235 /** @addtogroup PCD_Exported_Functions_Group1 Initialization and de-initialization functions
0236   * @{
0237   */
0238 HAL_StatusTypeDef HAL_PCD_Init(PCD_HandleTypeDef *hpcd);
0239 HAL_StatusTypeDef HAL_PCD_DeInit(PCD_HandleTypeDef *hpcd);
0240 void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd);
0241 void HAL_PCD_MspDeInit(PCD_HandleTypeDef *hpcd);
0242 
0243 #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
0244 /** @defgroup HAL_PCD_Callback_ID_enumeration_definition HAL USB OTG PCD Callback ID enumeration definition
0245   * @ingroup RTEMSBSPsARMSTM32H7
0246   * @brief  HAL USB OTG PCD Callback ID enumeration definition
0247   * @{
0248   */
0249 typedef enum
0250 {
0251   HAL_PCD_SOF_CB_ID          = 0x01,      /*!< USB PCD SOF callback ID          */
0252   HAL_PCD_SETUPSTAGE_CB_ID   = 0x02,      /*!< USB PCD Setup Stage callback ID  */
0253   HAL_PCD_RESET_CB_ID        = 0x03,      /*!< USB PCD Reset callback ID        */
0254   HAL_PCD_SUSPEND_CB_ID      = 0x04,      /*!< USB PCD Suspend callback ID      */
0255   HAL_PCD_RESUME_CB_ID       = 0x05,      /*!< USB PCD Resume callback ID       */
0256   HAL_PCD_CONNECT_CB_ID      = 0x06,      /*!< USB PCD Connect callback ID      */
0257   HAL_PCD_DISCONNECT_CB_ID   = 0x07,      /*!< USB PCD Disconnect callback ID   */
0258 
0259   HAL_PCD_MSPINIT_CB_ID      = 0x08,      /*!< USB PCD MspInit callback ID      */
0260   HAL_PCD_MSPDEINIT_CB_ID    = 0x09       /*!< USB PCD MspDeInit callback ID    */
0261 
0262 } HAL_PCD_CallbackIDTypeDef;
0263 /**
0264   * @}
0265   */
0266 
0267 /** @defgroup HAL_PCD_Callback_pointer_definition HAL USB OTG PCD Callback pointer definition
0268   * @ingroup RTEMSBSPsARMSTM32H7
0269   * @brief  HAL USB OTG PCD Callback pointer definition
0270   * @{
0271   */
0272 
0273 typedef void (*pPCD_CallbackTypeDef)(PCD_HandleTypeDef *hpcd);                                   /*!< pointer to a common USB OTG PCD callback function  */
0274 typedef void (*pPCD_DataOutStageCallbackTypeDef)(PCD_HandleTypeDef *hpcd, uint8_t epnum);        /*!< pointer to USB OTG PCD Data OUT Stage callback     */
0275 typedef void (*pPCD_DataInStageCallbackTypeDef)(PCD_HandleTypeDef *hpcd, uint8_t epnum);         /*!< pointer to USB OTG PCD Data IN Stage callback      */
0276 typedef void (*pPCD_IsoOutIncpltCallbackTypeDef)(PCD_HandleTypeDef *hpcd, uint8_t epnum);        /*!< pointer to USB OTG PCD ISO OUT Incomplete callback */
0277 typedef void (*pPCD_IsoInIncpltCallbackTypeDef)(PCD_HandleTypeDef *hpcd, uint8_t epnum);         /*!< pointer to USB OTG PCD ISO IN Incomplete callback  */
0278 typedef void (*pPCD_LpmCallbackTypeDef)(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg);        /*!< pointer to USB OTG PCD LPM callback                */
0279 typedef void (*pPCD_BcdCallbackTypeDef)(PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg);        /*!< pointer to USB OTG PCD BCD callback                */
0280 
0281 /**
0282   * @}
0283   */
0284 
0285 HAL_StatusTypeDef HAL_PCD_RegisterCallback(PCD_HandleTypeDef *hpcd, HAL_PCD_CallbackIDTypeDef CallbackID,
0286                                            pPCD_CallbackTypeDef pCallback);
0287 
0288 HAL_StatusTypeDef HAL_PCD_UnRegisterCallback(PCD_HandleTypeDef *hpcd, HAL_PCD_CallbackIDTypeDef CallbackID);
0289 
0290 HAL_StatusTypeDef HAL_PCD_RegisterDataOutStageCallback(PCD_HandleTypeDef *hpcd,
0291                                                        pPCD_DataOutStageCallbackTypeDef pCallback);
0292 
0293 HAL_StatusTypeDef HAL_PCD_UnRegisterDataOutStageCallback(PCD_HandleTypeDef *hpcd);
0294 
0295 HAL_StatusTypeDef HAL_PCD_RegisterDataInStageCallback(PCD_HandleTypeDef *hpcd,
0296                                                       pPCD_DataInStageCallbackTypeDef pCallback);
0297 
0298 HAL_StatusTypeDef HAL_PCD_UnRegisterDataInStageCallback(PCD_HandleTypeDef *hpcd);
0299 
0300 HAL_StatusTypeDef HAL_PCD_RegisterIsoOutIncpltCallback(PCD_HandleTypeDef *hpcd,
0301                                                        pPCD_IsoOutIncpltCallbackTypeDef pCallback);
0302 
0303 HAL_StatusTypeDef HAL_PCD_UnRegisterIsoOutIncpltCallback(PCD_HandleTypeDef *hpcd);
0304 
0305 HAL_StatusTypeDef HAL_PCD_RegisterIsoInIncpltCallback(PCD_HandleTypeDef *hpcd,
0306                                                       pPCD_IsoInIncpltCallbackTypeDef pCallback);
0307 
0308 HAL_StatusTypeDef HAL_PCD_UnRegisterIsoInIncpltCallback(PCD_HandleTypeDef *hpcd);
0309 
0310 HAL_StatusTypeDef HAL_PCD_RegisterBcdCallback(PCD_HandleTypeDef *hpcd, pPCD_BcdCallbackTypeDef pCallback);
0311 HAL_StatusTypeDef HAL_PCD_UnRegisterBcdCallback(PCD_HandleTypeDef *hpcd);
0312 
0313 HAL_StatusTypeDef HAL_PCD_RegisterLpmCallback(PCD_HandleTypeDef *hpcd, pPCD_LpmCallbackTypeDef pCallback);
0314 HAL_StatusTypeDef HAL_PCD_UnRegisterLpmCallback(PCD_HandleTypeDef *hpcd);
0315 #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
0316 /**
0317   * @}
0318   */
0319 
0320 /* I/O operation functions  ***************************************************/
0321 /* Non-Blocking mode: Interrupt */
0322 /** @addtogroup PCD_Exported_Functions_Group2 Input and Output operation functions
0323   * @{
0324   */
0325 HAL_StatusTypeDef HAL_PCD_Start(PCD_HandleTypeDef *hpcd);
0326 HAL_StatusTypeDef HAL_PCD_Stop(PCD_HandleTypeDef *hpcd);
0327 void HAL_PCD_IRQHandler(PCD_HandleTypeDef *hpcd);
0328 
0329 void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd);
0330 void HAL_PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd);
0331 void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd);
0332 void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd);
0333 void HAL_PCD_ResumeCallback(PCD_HandleTypeDef *hpcd);
0334 void HAL_PCD_ConnectCallback(PCD_HandleTypeDef *hpcd);
0335 void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd);
0336 
0337 void HAL_PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum);
0338 void HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum);
0339 void HAL_PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum);
0340 void HAL_PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum);
0341 /**
0342   * @}
0343   */
0344 
0345 /* Peripheral Control functions  **********************************************/
0346 /** @addtogroup PCD_Exported_Functions_Group3 Peripheral Control functions
0347   * @{
0348   */
0349 HAL_StatusTypeDef HAL_PCD_DevConnect(PCD_HandleTypeDef *hpcd);
0350 HAL_StatusTypeDef HAL_PCD_DevDisconnect(PCD_HandleTypeDef *hpcd);
0351 HAL_StatusTypeDef HAL_PCD_SetAddress(PCD_HandleTypeDef *hpcd, uint8_t address);
0352 HAL_StatusTypeDef HAL_PCD_EP_Open(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint16_t ep_mps, uint8_t ep_type);
0353 HAL_StatusTypeDef HAL_PCD_EP_Close(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
0354 HAL_StatusTypeDef HAL_PCD_EP_Receive(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint32_t len);
0355 HAL_StatusTypeDef HAL_PCD_EP_Transmit(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint32_t len);
0356 HAL_StatusTypeDef HAL_PCD_EP_SetStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
0357 HAL_StatusTypeDef HAL_PCD_EP_ClrStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
0358 HAL_StatusTypeDef HAL_PCD_EP_Flush(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
0359 HAL_StatusTypeDef HAL_PCD_EP_Abort(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
0360 HAL_StatusTypeDef HAL_PCD_ActivateRemoteWakeup(PCD_HandleTypeDef *hpcd);
0361 HAL_StatusTypeDef HAL_PCD_DeActivateRemoteWakeup(PCD_HandleTypeDef *hpcd);
0362 #if defined (USB_OTG_FS) || defined (USB_OTG_HS)
0363 HAL_StatusTypeDef HAL_PCD_SetTestMode(const PCD_HandleTypeDef *hpcd, uint8_t testmode);
0364 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
0365 
0366 uint32_t          HAL_PCD_EP_GetRxCount(PCD_HandleTypeDef const *hpcd, uint8_t ep_addr);
0367 /**
0368   * @}
0369   */
0370 
0371 /* Peripheral State functions  ************************************************/
0372 /** @addtogroup PCD_Exported_Functions_Group4 Peripheral State functions
0373   * @{
0374   */
0375 PCD_StateTypeDef HAL_PCD_GetState(PCD_HandleTypeDef const *hpcd);
0376 /**
0377   * @}
0378   */
0379 
0380 /**
0381   * @}
0382   */
0383 
0384 /* Private constants ---------------------------------------------------------*/
0385 /** @defgroup PCD_Private_Constants PCD Private Constants
0386   * @ingroup RTEMSBSPsARMSTM32H7
0387   * @{
0388   */
0389 /** @defgroup USB_EXTI_Line_Interrupt USB EXTI line interrupt
0390   * @ingroup RTEMSBSPsARMSTM32H7
0391   * @{
0392   */
0393 #if defined (USB_OTG_FS) || defined (USB_OTG_HS)
0394 #define USB_OTG_FS_WAKEUP_EXTI_LINE                                   (0x1U << 12)  /*!< USB FS EXTI Line WakeUp Interrupt */
0395 #define USB_OTG_HS_WAKEUP_EXTI_LINE                                   (0x1U << 11)  /*!< USB HS EXTI Line WakeUp Interrupt */
0396 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
0397 
0398 
0399 /**
0400   * @}
0401   */
0402 /**
0403   * @}
0404   */
0405 
0406 #if defined (USB_OTG_FS) || defined (USB_OTG_HS)
0407 #ifndef USB_OTG_DOEPINT_OTEPSPR
0408 #define USB_OTG_DOEPINT_OTEPSPR                (0x1UL << 5)      /*!< Status Phase Received interrupt */
0409 #endif /* defined USB_OTG_DOEPINT_OTEPSPR */
0410 
0411 #ifndef USB_OTG_DOEPMSK_OTEPSPRM
0412 #define USB_OTG_DOEPMSK_OTEPSPRM               (0x1UL << 5)      /*!< Setup Packet Received interrupt mask */
0413 #endif /* defined USB_OTG_DOEPMSK_OTEPSPRM */
0414 
0415 #ifndef USB_OTG_DOEPINT_NAK
0416 #define USB_OTG_DOEPINT_NAK                    (0x1UL << 13)      /*!< NAK interrupt */
0417 #endif /* defined USB_OTG_DOEPINT_NAK */
0418 
0419 #ifndef USB_OTG_DOEPMSK_NAKM
0420 #define USB_OTG_DOEPMSK_NAKM                   (0x1UL << 13)      /*!< OUT Packet NAK interrupt mask */
0421 #endif /* defined USB_OTG_DOEPMSK_NAKM */
0422 
0423 #ifndef USB_OTG_DOEPINT_STPKTRX
0424 #define USB_OTG_DOEPINT_STPKTRX                (0x1UL << 15)      /*!< Setup Packet Received interrupt */
0425 #endif /* defined USB_OTG_DOEPINT_STPKTRX */
0426 
0427 #ifndef USB_OTG_DOEPMSK_NYETM
0428 #define USB_OTG_DOEPMSK_NYETM                  (0x1UL << 14)      /*!< Setup Packet Received interrupt mask */
0429 #endif /* defined USB_OTG_DOEPMSK_NYETM */
0430 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
0431 
0432 /* Private macros ------------------------------------------------------------*/
0433 /** @defgroup PCD_Private_Macros PCD Private Macros
0434   * @ingroup RTEMSBSPsARMSTM32H7
0435   * @{
0436   */
0437 
0438 /**
0439   * @}
0440   */
0441 
0442 /**
0443   * @}
0444   */
0445 
0446 /**
0447   * @}
0448   */
0449 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
0450 
0451 #ifdef __cplusplus
0452 }
0453 #endif
0454 
0455 #endif /* STM32H7xx_HAL_PCD_H */