stm32f7xx_hal_hcd.h
Go to the documentation of this file.
1 
20 /* Define to prevent recursive inclusion -------------------------------------*/
21 #ifndef STM32F7xx_HAL_HCD_H
22 #define STM32F7xx_HAL_HCD_H
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 /* Includes ------------------------------------------------------------------*/
29 #include "stm32f7xx_ll_usb.h"
30 
31 #if defined (USB_OTG_FS) || defined (USB_OTG_HS)
32 
40 /* Exported types ------------------------------------------------------------*/
48 typedef enum
49 {
50  HAL_HCD_STATE_RESET = 0x00,
51  HAL_HCD_STATE_READY = 0x01,
52  HAL_HCD_STATE_ERROR = 0x02,
53  HAL_HCD_STATE_BUSY = 0x03,
54  HAL_HCD_STATE_TIMEOUT = 0x04
55 } HCD_StateTypeDef;
56 
57 typedef USB_OTG_GlobalTypeDef HCD_TypeDef;
58 typedef USB_OTG_CfgTypeDef HCD_InitTypeDef;
59 typedef USB_OTG_HCTypeDef HCD_HCTypeDef;
60 typedef USB_OTG_URBStateTypeDef HCD_URBStateTypeDef;
61 typedef USB_OTG_HCStateTypeDef HCD_HCStateTypeDef;
69 #if (USE_HAL_HCD_REGISTER_CALLBACKS == 1U)
70 typedef struct __HCD_HandleTypeDef
71 #else
72 typedef struct
73 #endif /* USE_HAL_HCD_REGISTER_CALLBACKS */
74 {
75  HCD_TypeDef *Instance;
76  HCD_InitTypeDef Init;
77  HCD_HCTypeDef hc[16];
78  HAL_LockTypeDef Lock;
79  __IO HCD_StateTypeDef State;
80  __IO uint32_t ErrorCode;
81  void *pData;
82 #if (USE_HAL_HCD_REGISTER_CALLBACKS == 1U)
83  void (* SOFCallback)(struct __HCD_HandleTypeDef *hhcd);
84  void (* ConnectCallback)(struct __HCD_HandleTypeDef *hhcd);
85  void (* DisconnectCallback)(struct __HCD_HandleTypeDef *hhcd);
86  void (* PortEnabledCallback)(struct __HCD_HandleTypeDef *hhcd);
87  void (* PortDisabledCallback)(struct __HCD_HandleTypeDef *hhcd);
88  void (* HC_NotifyURBChangeCallback)(struct __HCD_HandleTypeDef *hhcd, uint8_t chnum,
89  HCD_URBStateTypeDef urb_state);
91  void (* MspInitCallback)(struct __HCD_HandleTypeDef *hhcd);
92  void (* MspDeInitCallback)(struct __HCD_HandleTypeDef *hhcd);
93 #endif /* USE_HAL_HCD_REGISTER_CALLBACKS */
94 } HCD_HandleTypeDef;
103 /* Exported constants --------------------------------------------------------*/
111 #define HCD_SPEED_HIGH USBH_HS_SPEED
112 #define HCD_SPEED_FULL USBH_FSLS_SPEED
113 #define HCD_SPEED_LOW USBH_FSLS_SPEED
114 
122 #define HCD_PHY_ULPI 1U
123 #define HCD_PHY_EMBEDDED 2U
124 
132 #if (USE_HAL_HCD_REGISTER_CALLBACKS == 1U)
133 #define HAL_HCD_ERROR_INVALID_CALLBACK (0x00000010U)
134 #endif /* USE_HAL_HCD_REGISTER_CALLBACKS */
135 
144 /* Exported macro ------------------------------------------------------------*/
149 #define __HAL_HCD_ENABLE(__HANDLE__) (void)USB_EnableGlobalInt ((__HANDLE__)->Instance)
150 #define __HAL_HCD_DISABLE(__HANDLE__) (void)USB_DisableGlobalInt ((__HANDLE__)->Instance)
151 
152 #define __HAL_HCD_GET_FLAG(__HANDLE__, __INTERRUPT__) ((USB_ReadInterrupts((__HANDLE__)->Instance) & (__INTERRUPT__)) == (__INTERRUPT__))
153 #define __HAL_HCD_CLEAR_FLAG(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->GINTSTS) = (__INTERRUPT__))
154 #define __HAL_HCD_IS_INVALID_INTERRUPT(__HANDLE__) (USB_ReadInterrupts((__HANDLE__)->Instance) == 0U)
155 
156 #define __HAL_HCD_CLEAR_HC_INT(chnum, __INTERRUPT__) (USBx_HC(chnum)->HCINT = (__INTERRUPT__))
157 #define __HAL_HCD_MASK_HALT_HC_INT(chnum) (USBx_HC(chnum)->HCINTMSK &= ~USB_OTG_HCINTMSK_CHHM)
158 #define __HAL_HCD_UNMASK_HALT_HC_INT(chnum) (USBx_HC(chnum)->HCINTMSK |= USB_OTG_HCINTMSK_CHHM)
159 #define __HAL_HCD_MASK_ACK_HC_INT(chnum) (USBx_HC(chnum)->HCINTMSK &= ~USB_OTG_HCINTMSK_ACKM)
160 #define __HAL_HCD_UNMASK_ACK_HC_INT(chnum) (USBx_HC(chnum)->HCINTMSK |= USB_OTG_HCINTMSK_ACKM)
161 
165 /* Exported functions --------------------------------------------------------*/
173 HAL_StatusTypeDef HAL_HCD_Init(HCD_HandleTypeDef *hhcd);
174 HAL_StatusTypeDef HAL_HCD_DeInit(HCD_HandleTypeDef *hhcd);
175 HAL_StatusTypeDef HAL_HCD_HC_Init(HCD_HandleTypeDef *hhcd, uint8_t ch_num,
176  uint8_t epnum, uint8_t dev_address,
177  uint8_t speed, uint8_t ep_type, uint16_t mps);
178 
179 HAL_StatusTypeDef HAL_HCD_HC_Halt(HCD_HandleTypeDef *hhcd, uint8_t ch_num);
180 void HAL_HCD_MspInit(HCD_HandleTypeDef *hhcd);
181 void HAL_HCD_MspDeInit(HCD_HandleTypeDef *hhcd);
182 
183 #if (USE_HAL_HCD_REGISTER_CALLBACKS == 1U)
184 
188 typedef enum
189 {
190  HAL_HCD_SOF_CB_ID = 0x01,
191  HAL_HCD_CONNECT_CB_ID = 0x02,
192  HAL_HCD_DISCONNECT_CB_ID = 0x03,
193  HAL_HCD_PORT_ENABLED_CB_ID = 0x04,
194  HAL_HCD_PORT_DISABLED_CB_ID = 0x05,
196  HAL_HCD_MSPINIT_CB_ID = 0x06,
197  HAL_HCD_MSPDEINIT_CB_ID = 0x07
199 } HAL_HCD_CallbackIDTypeDef;
209 typedef void (*pHCD_CallbackTypeDef)(HCD_HandleTypeDef *hhcd);
210 typedef void (*pHCD_HC_NotifyURBChangeCallbackTypeDef)(HCD_HandleTypeDef *hhcd,
211  uint8_t epnum,
212  HCD_URBStateTypeDef urb_state);
217 HAL_StatusTypeDef HAL_HCD_RegisterCallback(HCD_HandleTypeDef *hhcd, HAL_HCD_CallbackIDTypeDef CallbackID, pHCD_CallbackTypeDef pCallback);
218 HAL_StatusTypeDef HAL_HCD_UnRegisterCallback(HCD_HandleTypeDef *hhcd, HAL_HCD_CallbackIDTypeDef CallbackID);
219 
220 HAL_StatusTypeDef HAL_HCD_RegisterHC_NotifyURBChangeCallback(HCD_HandleTypeDef *hhcd, pHCD_HC_NotifyURBChangeCallbackTypeDef pCallback);
221 HAL_StatusTypeDef HAL_HCD_UnRegisterHC_NotifyURBChangeCallback(HCD_HandleTypeDef *hhcd);
222 #endif /* USE_HAL_HCD_REGISTER_CALLBACKS */
223 
227 /* I/O operation functions ***************************************************/
231 HAL_StatusTypeDef HAL_HCD_HC_SubmitRequest(HCD_HandleTypeDef *hhcd, uint8_t ch_num,
232  uint8_t direction, uint8_t ep_type,
233  uint8_t token, uint8_t *pbuff,
234  uint16_t length, uint8_t do_ping);
235 
236 /* Non-Blocking mode: Interrupt */
237 void HAL_HCD_IRQHandler(HCD_HandleTypeDef *hhcd);
238 void HAL_HCD_SOF_Callback(HCD_HandleTypeDef *hhcd);
239 void HAL_HCD_Connect_Callback(HCD_HandleTypeDef *hhcd);
240 void HAL_HCD_Disconnect_Callback(HCD_HandleTypeDef *hhcd);
241 void HAL_HCD_PortEnabled_Callback(HCD_HandleTypeDef *hhcd);
242 void HAL_HCD_PortDisabled_Callback(HCD_HandleTypeDef *hhcd);
243 void HAL_HCD_HC_NotifyURBChange_Callback(HCD_HandleTypeDef *hhcd, uint8_t chnum,
244  HCD_URBStateTypeDef urb_state);
249 /* Peripheral Control functions **********************************************/
253 HAL_StatusTypeDef HAL_HCD_ResetPort(HCD_HandleTypeDef *hhcd);
254 HAL_StatusTypeDef HAL_HCD_Start(HCD_HandleTypeDef *hhcd);
255 HAL_StatusTypeDef HAL_HCD_Stop(HCD_HandleTypeDef *hhcd);
260 /* Peripheral State functions ************************************************/
264 HCD_StateTypeDef HAL_HCD_GetState(HCD_HandleTypeDef *hhcd);
265 HCD_URBStateTypeDef HAL_HCD_HC_GetURBState(HCD_HandleTypeDef *hhcd, uint8_t chnum);
266 HCD_HCStateTypeDef HAL_HCD_HC_GetState(HCD_HandleTypeDef *hhcd, uint8_t chnum);
267 uint32_t HAL_HCD_HC_GetXferCount(HCD_HandleTypeDef *hhcd, uint8_t chnum);
268 uint32_t HAL_HCD_GetCurrentFrame(HCD_HandleTypeDef *hhcd);
269 uint32_t HAL_HCD_GetCurrentSpeed(HCD_HandleTypeDef *hhcd);
278 /* Private macros ------------------------------------------------------------*/
287 /* Private functions prototypes ----------------------------------------------*/
296 /* Private functions ---------------------------------------------------------*/
312 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
313 
314 #ifdef __cplusplus
315 }
316 #endif
317 
318 #endif /* STM32F7xx_HAL_HCD_H */
319 
320 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
__IO
#define __IO
Definition: imxrt1050/imxrt1050-evkb/CMSIS/core_cm7.h:237
Init
napi_value Init(napi_env env, napi_value exports)
Definition: porcupine/demo/c/pvrecorder/node/pv_recorder_napi.c:197
HAL_StatusTypeDef
HAL_StatusTypeDef
HAL Status structures definition
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:40
HAL_LockTypeDef
HAL_LockTypeDef
HAL Lock structures definition
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:51
USB_OTG_GlobalTypeDef
USB_OTG_Core_Registers.
Definition: stm32f407xx.h:794


picovoice_driver
Author(s):
autogenerated on Fri Apr 1 2022 02:14:53