1 /**
2   ******************************************************************************
3   * @file    stm32l0xx_hal_pcd.h
4   * @author  MCD Application Team
5   * @brief   Header file of PCD HAL module.
6   ******************************************************************************
7   * @attention
8   *
9   * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
10   *
11   * Redistribution and use in source and binary forms, with or without modification,
12   * are permitted provided that the following conditions are met:
13   *   1. Redistributions of source code must retain the above copyright notice,
14   *      this list of conditions and the following disclaimer.
15   *   2. Redistributions in binary form must reproduce the above copyright notice,
16   *      this list of conditions and the following disclaimer in the documentation
17   *      and/or other materials provided with the distribution.
18   *   3. Neither the name of STMicroelectronics nor the names of its contributors
19   *      may be used to endorse or promote products derived from this software
20   *      without specific prior written permission.
21   *
22   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
26   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
28   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32   *
33   ******************************************************************************
34   */
35 
36 /* Define to prevent recursive inclusion -------------------------------------*/
37 #ifndef __STM32L0xx_HAL_PCD_EX_H
38 #define __STM32L0xx_HAL_PCD_EX_H
39 
40 #ifdef __cplusplus
41  extern "C" {
42 #endif
43 
44 /* Includes ------------------------------------------------------------------*/
45 #include "stm32l0xx_hal_def.h"
46 
47 /** @addtogroup STM32L0xx_HAL_Driver
48   * @{
49   */
50 
51 /** @defgroup PCDEx PCDEx
52   * @{
53   */
54 /* Exported types ------------------------------------------------------------*/
55 typedef enum
56 {
57   PCD_LPM_L0_ACTIVE = 0x00, /* on */
58   PCD_LPM_L1_ACTIVE = 0x01, /* LPM L1 sleep */
59 }PCD_LPM_MsgTypeDef;
60 
61 typedef enum
62 {
63   PCD_BCD_ERROR                     = 0xFF,
64   PCD_BCD_CONTACT_DETECTION         = 0xFE,
65   PCD_BCD_STD_DOWNSTREAM_PORT       = 0xFD,
66   PCD_BCD_CHARGING_DOWNSTREAM_PORT  = 0xFC,
67   PCD_BCD_DEDICATED_CHARGING_PORT   = 0xFB,
68   PCD_BCD_DISCOVERY_COMPLETED       = 0x00,
69 
70 }PCD_BCD_MsgTypeDef;
71 
72 /* Exported constants --------------------------------------------------------*/
73 /* Exported macros -----------------------------------------------------------*/
74 /* Exported functions --------------------------------------------------------*/
75 
76 /** @defgroup PCDEx_Exported_Functions PCDEx Exported Functions
77   * @{
78   */
79 
80 /** @defgroup PCDEx__Exported_Functions_Group1 Initialization and de-initialization functions
81  *  @brief    Initialization and Configuration functions
82  */
83 HAL_StatusTypeDef HAL_PCDEx_PMAConfig(PCD_HandleTypeDef *hpcd,
84                                      uint16_t ep_addr,
85                                      uint16_t ep_kind,
86                                      uint32_t pmaadress);
87 HAL_StatusTypeDef HAL_PCDEx_ActivateLPM(PCD_HandleTypeDef *hpcd);
88 HAL_StatusTypeDef HAL_PCDEx_DeActivateLPM(PCD_HandleTypeDef *hpcd);
89 HAL_StatusTypeDef HAL_PCDEx_ActivateBCD(PCD_HandleTypeDef *hpcd);
90 HAL_StatusTypeDef HAL_PCDEx_DeActivateBCD(PCD_HandleTypeDef *hpcd);
91 void HAL_PCDEx_BCD_VBUSDetect(PCD_HandleTypeDef *hpcd);
92 void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg);
93 void HAL_PCDEx_BCD_Callback(PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg);
94 
95 /**
96   * @}
97   */
98 
99 /**
100   * @}
101   */
102 
103 /**
104   * @}
105   */
106 
107 #ifdef __cplusplus
108 }
109 #endif
110 
111 
112 #endif /* __STM32L0xx_HAL_PCD_EX_H */
113 
114 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
115 
116