1 /**
2   ******************************************************************************
3   * @file    stm32f4xx_hal_pcd_ex.h
4   * @author  MCD Application Team
5   * @brief   Header file of PCD HAL Extension module.
6   ******************************************************************************
7   * @attention
8   *
9   * Copyright (c) 2016 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 STM32F4xx_HAL_PCD_EX_H
21 #define STM32F4xx_HAL_PCD_EX_H
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif /* __cplusplus */
26 
27 /* Includes ------------------------------------------------------------------*/
28 #include "stm32f4xx_hal_def.h"
29 
30 #if defined (USB_OTG_FS) || defined (USB_OTG_HS)
31 /** @addtogroup STM32F4xx_HAL_Driver
32   * @{
33   */
34 
35 /** @addtogroup PCDEx
36   * @{
37   */
38 /* Exported types ------------------------------------------------------------*/
39 /* Exported constants --------------------------------------------------------*/
40 /* Exported macros -----------------------------------------------------------*/
41 /* Exported functions --------------------------------------------------------*/
42 /** @addtogroup PCDEx_Exported_Functions PCDEx Exported Functions
43   * @{
44   */
45 /** @addtogroup PCDEx_Exported_Functions_Group1 Peripheral Control functions
46   * @{
47   */
48 #if defined (USB_OTG_FS) || defined (USB_OTG_HS)
49 HAL_StatusTypeDef HAL_PCDEx_SetTxFiFo(PCD_HandleTypeDef *hpcd, uint8_t fifo, uint16_t size);
50 HAL_StatusTypeDef HAL_PCDEx_SetRxFiFo(PCD_HandleTypeDef *hpcd, uint16_t size);
51 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
52 
53 #if defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) \
54  || defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) \
55  || defined(STM32F423xx)
56 HAL_StatusTypeDef HAL_PCDEx_ActivateLPM(PCD_HandleTypeDef *hpcd);
57 HAL_StatusTypeDef HAL_PCDEx_DeActivateLPM(PCD_HandleTypeDef *hpcd);
58 #endif /* defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) ||
59           defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) ||
60           defined(STM32F423xx) */
61 #if defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) \
62  || defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx)
63 HAL_StatusTypeDef HAL_PCDEx_ActivateBCD(PCD_HandleTypeDef *hpcd);
64 HAL_StatusTypeDef HAL_PCDEx_DeActivateBCD(PCD_HandleTypeDef *hpcd);
65 void HAL_PCDEx_BCD_VBUSDetect(PCD_HandleTypeDef *hpcd);
66 #endif /* defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) ||
67           defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx) */
68 void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg);
69 void HAL_PCDEx_BCD_Callback(PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg);
70 
71 /**
72   * @}
73   */
74 
75 /**
76   * @}
77   */
78 
79 /**
80   * @}
81   */
82 
83 /**
84   * @}
85   */
86 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
87 
88 #ifdef __cplusplus
89 }
90 #endif /* __cplusplus */
91 
92 
93 #endif /* STM32F4xx_HAL_PCD_EX_H */
94