• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2   ******************************************************************************
3   * @file    stm32f4xx_ll_usb.h
4   * @author  MCD Application Team
5   * @brief   Header file of USB Low Layer HAL module.
6   ******************************************************************************
7   * @attention
8   *
9   * <h2><center>&copy; 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_LL_USB_H
22 #define STM32F4xx_LL_USB_H
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 /* Includes ------------------------------------------------------------------*/
29 #include "stm32f4xx_hal_def.h"
30 
31 #if defined (USB_OTG_FS) || defined (USB_OTG_HS)
32 /** @addtogroup STM32F4xx_HAL_Driver
33   * @{
34   */
35 
36 /** @addtogroup USB_LL
37   * @{
38   */
39 
40 /* Exported types ------------------------------------------------------------*/
41 
42 /**
43   * @brief  USB Mode definition
44   */
45 #if defined (USB_OTG_FS) || defined (USB_OTG_HS)
46 
47 typedef enum
48 {
49   USB_DEVICE_MODE  = 0,
50   USB_HOST_MODE    = 1,
51   USB_DRD_MODE     = 2
52 } USB_OTG_ModeTypeDef;
53 
54 /**
55   * @brief  URB States definition
56   */
57 typedef enum
58 {
59   URB_IDLE = 0,
60   URB_DONE,
61   URB_NOTREADY,
62   URB_NYET,
63   URB_ERROR,
64   URB_STALL
65 } USB_OTG_URBStateTypeDef;
66 
67 /**
68   * @brief  Host channel States  definition
69   */
70 typedef enum
71 {
72   HC_IDLE = 0,
73   HC_XFRC,
74   HC_HALTED,
75   HC_NAK,
76   HC_NYET,
77   HC_STALL,
78   HC_XACTERR,
79   HC_BBLERR,
80   HC_DATATGLERR
81 } USB_OTG_HCStateTypeDef;
82 
83 /**
84   * @brief  USB Instance Initialization Structure definition
85   */
86 typedef struct
87 {
88   uint32_t dev_endpoints;           /*!< Device Endpoints number.
89                                          This parameter depends on the used USB core.
90                                          This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
91 
92   uint32_t Host_channels;           /*!< Host Channels number.
93                                          This parameter Depends on the used USB core.
94                                          This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
95 
96   uint32_t speed;                   /*!< USB Core speed.
97                                          This parameter can be any value of @ref PCD_Speed/HCD_Speed
98                                                                                  (HCD_SPEED_xxx, HCD_SPEED_xxx) */
99 
100   uint32_t dma_enable;              /*!< Enable or disable of the USB embedded DMA used only for OTG HS.        */
101 
102   uint32_t ep0_mps;                 /*!< Set the Endpoint 0 Max Packet size.                                    */
103 
104   uint32_t phy_itface;              /*!< Select the used PHY interface.
105                                          This parameter can be any value of @ref PCD_PHY_Module/HCD_PHY_Module  */
106 
107   uint32_t Sof_enable;              /*!< Enable or disable the output of the SOF signal.                        */
108 
109   uint32_t low_power_enable;        /*!< Enable or disable the low power mode.                                  */
110 
111   uint32_t lpm_enable;              /*!< Enable or disable Link Power Management.                               */
112 
113   uint32_t battery_charging_enable; /*!< Enable or disable Battery charging.                                    */
114 
115   uint32_t vbus_sensing_enable;     /*!< Enable or disable the VBUS Sensing feature.                            */
116 
117   uint32_t use_dedicated_ep1;       /*!< Enable or disable the use of the dedicated EP1 interrupt.              */
118 
119   uint32_t use_external_vbus;       /*!< Enable or disable the use of the external VBUS.                        */
120 
121 } USB_OTG_CfgTypeDef;
122 
123 typedef struct
124 {
125   uint8_t   num;                  /*!< Endpoint number
126                                        This parameter must be a number between Min_Data = 1 and Max_Data = 15   */
127 
128   uint8_t   is_in;                /*!< Endpoint direction
129                                        This parameter must be a number between Min_Data = 0 and Max_Data = 1    */
130 
131   uint8_t   is_stall;             /*!< Endpoint stall condition
132                                        This parameter must be a number between Min_Data = 0 and Max_Data = 1    */
133 
134   uint8_t   type;                 /*!< Endpoint type
135                                        This parameter can be any value of @ref USB_LL_EP_Type                   */
136 
137   uint8_t   data_pid_start;       /*!< Initial data PID
138                                        This parameter must be a number between Min_Data = 0 and Max_Data = 1    */
139 
140   uint8_t   even_odd_frame;       /*!< IFrame parity
141                                        This parameter must be a number between Min_Data = 0 and Max_Data = 1    */
142 
143   uint16_t  tx_fifo_num;          /*!< Transmission FIFO number
144                                        This parameter must be a number between Min_Data = 1 and Max_Data = 15   */
145 
146   uint32_t  maxpacket;            /*!< Endpoint Max packet size
147                                        This parameter must be a number between Min_Data = 0 and Max_Data = 64KB */
148 
149   uint8_t   *xfer_buff;           /*!< Pointer to transfer buffer                                               */
150 
151   uint32_t  dma_addr;             /*!< 32 bits aligned transfer buffer address                                  */
152 
153   uint32_t  xfer_len;             /*!< Current transfer length                                                  */
154 
155   uint32_t  xfer_count;           /*!< Partial transfer length in case of multi packet transfer                 */
156 } USB_OTG_EPTypeDef;
157 
158 typedef struct
159 {
160   uint8_t   dev_addr;           /*!< USB device address.
161                                      This parameter must be a number between Min_Data = 1 and Max_Data = 255    */
162 
163   uint8_t   ch_num;             /*!< Host channel number.
164                                      This parameter must be a number between Min_Data = 1 and Max_Data = 15     */
165 
166   uint8_t   ep_num;             /*!< Endpoint number.
167                                      This parameter must be a number between Min_Data = 1 and Max_Data = 15     */
168 
169   uint8_t   ep_is_in;           /*!< Endpoint direction
170                                      This parameter must be a number between Min_Data = 0 and Max_Data = 1      */
171 
172   uint8_t   speed;              /*!< USB Host Channel speed.
173                                      This parameter can be any value of @ref HCD_Device_Speed:
174                                                                              (HCD_DEVICE_SPEED_xxx)             */
175 
176   uint8_t   do_ping;            /*!< Enable or disable the use of the PING protocol for HS mode.                */
177 
178   uint8_t   process_ping;       /*!< Execute the PING protocol for HS mode.                                     */
179 
180   uint8_t   ep_type;            /*!< Endpoint Type.
181                                      This parameter can be any value of @ref USB_LL_EP_Type                     */
182 
183   uint16_t  max_packet;         /*!< Endpoint Max packet size.
184                                      This parameter must be a number between Min_Data = 0 and Max_Data = 64KB   */
185 
186   uint8_t   data_pid;           /*!< Initial data PID.
187                                      This parameter must be a number between Min_Data = 0 and Max_Data = 1      */
188 
189   uint8_t   *xfer_buff;         /*!< Pointer to transfer buffer.                                                */
190 
191   uint32_t  XferSize;             /*!< OTG Channel transfer size.                                                   */
192 
193   uint32_t  xfer_len;           /*!< Current transfer length.                                                   */
194 
195   uint32_t  xfer_count;         /*!< Partial transfer length in case of multi packet transfer.                  */
196 
197   uint8_t   toggle_in;          /*!< IN transfer current toggle flag.
198                                      This parameter must be a number between Min_Data = 0 and Max_Data = 1      */
199 
200   uint8_t   toggle_out;         /*!< OUT transfer current toggle flag
201                                      This parameter must be a number between Min_Data = 0 and Max_Data = 1      */
202 
203   uint32_t  dma_addr;           /*!< 32 bits aligned transfer buffer address.                                   */
204 
205   uint32_t  ErrCnt;             /*!< Host channel error count.                                                  */
206 
207   USB_OTG_URBStateTypeDef urb_state;  /*!< URB state.
208                                             This parameter can be any value of @ref USB_OTG_URBStateTypeDef */
209 
210   USB_OTG_HCStateTypeDef state;       /*!< Host Channel state.
211                                             This parameter can be any value of @ref USB_OTG_HCStateTypeDef  */
212 } USB_OTG_HCTypeDef;
213 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
214 
215 
216 /* Exported constants --------------------------------------------------------*/
217 
218 /** @defgroup PCD_Exported_Constants PCD Exported Constants
219   * @{
220   */
221 
222 #if defined (USB_OTG_FS) || defined (USB_OTG_HS)
223 /** @defgroup USB_OTG_CORE VERSION ID
224   * @{
225   */
226 #define USB_OTG_CORE_ID_300A          0x4F54300AU
227 #define USB_OTG_CORE_ID_310A          0x4F54310AU
228 /**
229   * @}
230   */
231 
232 /** @defgroup USB_Core_Mode_ USB Core Mode
233   * @{
234   */
235 #define USB_OTG_MODE_DEVICE                    0U
236 #define USB_OTG_MODE_HOST                      1U
237 #define USB_OTG_MODE_DRD                       2U
238 /**
239   * @}
240   */
241 
242 /** @defgroup USB_LL Device Speed
243   * @{
244   */
245 #define USBD_HS_SPEED                          0U
246 #define USBD_HSINFS_SPEED                      1U
247 #define USBH_HS_SPEED                          0U
248 #define USBD_FS_SPEED                          2U
249 #define USBH_FSLS_SPEED                        1U
250 /**
251   * @}
252   */
253 
254 /** @defgroup USB_LL_Core_Speed USB Low Layer Core Speed
255   * @{
256   */
257 #define USB_OTG_SPEED_HIGH                     0U
258 #define USB_OTG_SPEED_HIGH_IN_FULL             1U
259 #define USB_OTG_SPEED_FULL                     3U
260 /**
261   * @}
262   */
263 
264 /** @defgroup USB_LL_Core_PHY USB Low Layer Core PHY
265   * @{
266   */
267 #define USB_OTG_ULPI_PHY                       1U
268 #define USB_OTG_EMBEDDED_PHY                   2U
269 /**
270   * @}
271   */
272 
273 /** @defgroup USB_LL_Turnaround_Timeout Turnaround Timeout Value
274   * @{
275   */
276 #ifndef USBD_HS_TRDT_VALUE
277 #define USBD_HS_TRDT_VALUE                     9U
278 #endif /* USBD_HS_TRDT_VALUE */
279 #ifndef USBD_FS_TRDT_VALUE
280 #define USBD_FS_TRDT_VALUE                     5U
281 #define USBD_DEFAULT_TRDT_VALUE                9U
282 #endif /* USBD_HS_TRDT_VALUE */
283 /**
284   * @}
285   */
286 
287 /** @defgroup USB_LL_Core_MPS USB Low Layer Core MPS
288   * @{
289   */
290 #define USB_OTG_HS_MAX_PACKET_SIZE           512U
291 #define USB_OTG_FS_MAX_PACKET_SIZE            64U
292 #define USB_OTG_MAX_EP0_SIZE                  64U
293 /**
294   * @}
295   */
296 
297 /** @defgroup USB_LL_Core_PHY_Frequency USB Low Layer Core PHY Frequency
298   * @{
299   */
300 #define DSTS_ENUMSPD_HS_PHY_30MHZ_OR_60MHZ     (0U << 1)
301 #define DSTS_ENUMSPD_FS_PHY_30MHZ_OR_60MHZ     (1U << 1)
302 #define DSTS_ENUMSPD_FS_PHY_48MHZ              (3U << 1)
303 /**
304   * @}
305   */
306 
307 /** @defgroup USB_LL_CORE_Frame_Interval USB Low Layer Core Frame Interval
308   * @{
309   */
310 #define DCFG_FRAME_INTERVAL_80                 0U
311 #define DCFG_FRAME_INTERVAL_85                 1U
312 #define DCFG_FRAME_INTERVAL_90                 2U
313 #define DCFG_FRAME_INTERVAL_95                 3U
314 /**
315   * @}
316   */
317 
318 /** @defgroup USB_LL_EP0_MPS USB Low Layer EP0 MPS
319   * @{
320   */
321 #define EP_MPS_64                        0U
322 #define EP_MPS_32                        1U
323 #define EP_MPS_16                        2U
324 #define EP_MPS_8                         3U
325 /**
326   * @}
327   */
328 
329 /** @defgroup USB_LL_EP_Speed USB Low Layer EP Speed
330   * @{
331   */
332 #define EP_SPEED_LOW                           0U
333 #define EP_SPEED_FULL                          1U
334 #define EP_SPEED_HIGH                          2U
335 /**
336   * @}
337   */
338 
339 /** @defgroup USB_LL_EP_Type USB Low Layer EP Type
340   * @{
341   */
342 #define EP_TYPE_CTRL                           0U
343 #define EP_TYPE_ISOC                           1U
344 #define EP_TYPE_BULK                           2U
345 #define EP_TYPE_INTR                           3U
346 #define EP_TYPE_MSK                            3U
347 /**
348   * @}
349   */
350 
351 /** @defgroup USB_LL_STS_Defines USB Low Layer STS Defines
352   * @{
353   */
354 #define STS_GOUT_NAK                           1U
355 #define STS_DATA_UPDT                          2U
356 #define STS_XFER_COMP                          3U
357 #define STS_SETUP_COMP                         4U
358 #define STS_SETUP_UPDT                         6U
359 /**
360   * @}
361   */
362 
363 /** @defgroup USB_LL_HCFG_SPEED_Defines USB Low Layer HCFG Speed Defines
364   * @{
365   */
366 #define HCFG_30_60_MHZ                         0U
367 #define HCFG_48_MHZ                            1U
368 #define HCFG_6_MHZ                             2U
369 /**
370   * @}
371   */
372 
373 /** @defgroup USB_LL_HPRT0_PRTSPD_SPEED_Defines USB Low Layer HPRT0 PRTSPD Speed Defines
374   * @{
375   */
376 #define HPRT0_PRTSPD_HIGH_SPEED                0U
377 #define HPRT0_PRTSPD_FULL_SPEED                1U
378 #define HPRT0_PRTSPD_LOW_SPEED                 2U
379 /**
380   * @}
381   */
382 
383 #define HCCHAR_CTRL                            0U
384 #define HCCHAR_ISOC                            1U
385 #define HCCHAR_BULK                            2U
386 #define HCCHAR_INTR                            3U
387 
388 #define HC_PID_DATA0                           0U
389 #define HC_PID_DATA2                           1U
390 #define HC_PID_DATA1                           2U
391 #define HC_PID_SETUP                           3U
392 
393 #define GRXSTS_PKTSTS_IN                       2U
394 #define GRXSTS_PKTSTS_IN_XFER_COMP             3U
395 #define GRXSTS_PKTSTS_DATA_TOGGLE_ERR          5U
396 #define GRXSTS_PKTSTS_CH_HALTED                7U
397 
398 #define USBx_PCGCCTL    *(__IO uint32_t *)((uint32_t)USBx_BASE + USB_OTG_PCGCCTL_BASE)
399 #define USBx_HPRT0      *(__IO uint32_t *)((uint32_t)USBx_BASE + USB_OTG_HOST_PORT_BASE)
400 
401 #define USBx_DEVICE     ((USB_OTG_DeviceTypeDef *)(USBx_BASE + USB_OTG_DEVICE_BASE))
402 #define USBx_INEP(i)    ((USB_OTG_INEndpointTypeDef *)(USBx_BASE\
403                                                        + USB_OTG_IN_ENDPOINT_BASE + ((i) * USB_OTG_EP_REG_SIZE)))
404 
405 #define USBx_OUTEP(i)   ((USB_OTG_OUTEndpointTypeDef *)(USBx_BASE\
406                                                         + USB_OTG_OUT_ENDPOINT_BASE + ((i) * USB_OTG_EP_REG_SIZE)))
407 
408 #define USBx_DFIFO(i)   *(__IO uint32_t *)(USBx_BASE + USB_OTG_FIFO_BASE + ((i) * USB_OTG_FIFO_SIZE))
409 
410 #define USBx_HOST       ((USB_OTG_HostTypeDef *)(USBx_BASE + USB_OTG_HOST_BASE))
411 #define USBx_HC(i)      ((USB_OTG_HostChannelTypeDef *)(USBx_BASE\
412                                                         + USB_OTG_HOST_CHANNEL_BASE\
413                                                         + ((i) * USB_OTG_HOST_CHANNEL_SIZE)))
414 
415 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
416 
417 #define EP_ADDR_MSK                            0xFU
418 /**
419   * @}
420   */
421 
422 /* Exported macro ------------------------------------------------------------*/
423 /** @defgroup USB_LL_Exported_Macros USB Low Layer Exported Macros
424   * @{
425   */
426 #if defined (USB_OTG_FS) || defined (USB_OTG_HS)
427 #define USB_MASK_INTERRUPT(__INSTANCE__, __INTERRUPT__)     ((__INSTANCE__)->GINTMSK &= ~(__INTERRUPT__))
428 #define USB_UNMASK_INTERRUPT(__INSTANCE__, __INTERRUPT__)   ((__INSTANCE__)->GINTMSK |= (__INTERRUPT__))
429 
430 #define CLEAR_IN_EP_INTR(__EPNUM__, __INTERRUPT__)          (USBx_INEP(__EPNUM__)->DIEPINT = (__INTERRUPT__))
431 #define CLEAR_OUT_EP_INTR(__EPNUM__, __INTERRUPT__)         (USBx_OUTEP(__EPNUM__)->DOEPINT = (__INTERRUPT__))
432 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
433 /**
434   * @}
435   */
436 
437 /* Exported functions --------------------------------------------------------*/
438 /** @addtogroup USB_LL_Exported_Functions USB Low Layer Exported Functions
439   * @{
440   */
441 #if defined (USB_OTG_FS) || defined (USB_OTG_HS)
442 HAL_StatusTypeDef USB_CoreInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg);
443 HAL_StatusTypeDef USB_DevInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg);
444 HAL_StatusTypeDef USB_EnableGlobalInt(USB_OTG_GlobalTypeDef *USBx);
445 HAL_StatusTypeDef USB_DisableGlobalInt(USB_OTG_GlobalTypeDef *USBx);
446 HAL_StatusTypeDef USB_SetTurnaroundTime(USB_OTG_GlobalTypeDef *USBx, uint32_t hclk, uint8_t speed);
447 HAL_StatusTypeDef USB_SetCurrentMode(USB_OTG_GlobalTypeDef *USBx, USB_OTG_ModeTypeDef mode);
448 HAL_StatusTypeDef USB_SetDevSpeed(USB_OTG_GlobalTypeDef *USBx, uint8_t speed);
449 HAL_StatusTypeDef USB_FlushRxFifo(USB_OTG_GlobalTypeDef *USBx);
450 HAL_StatusTypeDef USB_FlushTxFifo(USB_OTG_GlobalTypeDef *USBx, uint32_t num);
451 HAL_StatusTypeDef USB_ActivateEndpoint(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
452 HAL_StatusTypeDef USB_DeactivateEndpoint(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
453 HAL_StatusTypeDef USB_ActivateDedicatedEndpoint(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
454 HAL_StatusTypeDef USB_DeactivateDedicatedEndpoint(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
455 HAL_StatusTypeDef USB_EPStartXfer(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep, uint8_t dma);
456 HAL_StatusTypeDef USB_EP0StartXfer(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep, uint8_t dma);
457 HAL_StatusTypeDef USB_WritePacket(USB_OTG_GlobalTypeDef *USBx, uint8_t *src,
458                                   uint8_t ch_ep_num, uint16_t len, uint8_t dma);
459 
460 void             *USB_ReadPacket(USB_OTG_GlobalTypeDef *USBx, uint8_t *dest, uint16_t len);
461 HAL_StatusTypeDef USB_EPSetStall(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
462 HAL_StatusTypeDef USB_EPClearStall(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
463 HAL_StatusTypeDef USB_SetDevAddress(USB_OTG_GlobalTypeDef *USBx, uint8_t address);
464 HAL_StatusTypeDef USB_DevConnect(USB_OTG_GlobalTypeDef *USBx);
465 HAL_StatusTypeDef USB_DevDisconnect(USB_OTG_GlobalTypeDef *USBx);
466 HAL_StatusTypeDef USB_StopDevice(USB_OTG_GlobalTypeDef *USBx);
467 HAL_StatusTypeDef USB_ActivateSetup(USB_OTG_GlobalTypeDef *USBx);
468 HAL_StatusTypeDef USB_EP0_OutStart(USB_OTG_GlobalTypeDef *USBx, uint8_t dma, uint8_t *psetup);
469 uint8_t           USB_GetDevSpeed(USB_OTG_GlobalTypeDef *USBx);
470 uint32_t          USB_GetMode(USB_OTG_GlobalTypeDef *USBx);
471 uint32_t          USB_ReadInterrupts(USB_OTG_GlobalTypeDef *USBx);
472 uint32_t          USB_ReadDevAllOutEpInterrupt(USB_OTG_GlobalTypeDef *USBx);
473 uint32_t          USB_ReadDevOutEPInterrupt(USB_OTG_GlobalTypeDef *USBx, uint8_t epnum);
474 uint32_t          USB_ReadDevAllInEpInterrupt(USB_OTG_GlobalTypeDef *USBx);
475 uint32_t          USB_ReadDevInEPInterrupt(USB_OTG_GlobalTypeDef *USBx, uint8_t epnum);
476 void              USB_ClearInterrupts(USB_OTG_GlobalTypeDef *USBx, uint32_t interrupt);
477 
478 HAL_StatusTypeDef USB_HostInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg);
479 HAL_StatusTypeDef USB_InitFSLSPClkSel(USB_OTG_GlobalTypeDef *USBx, uint8_t freq);
480 HAL_StatusTypeDef USB_ResetPort(USB_OTG_GlobalTypeDef *USBx);
481 HAL_StatusTypeDef USB_DriveVbus(USB_OTG_GlobalTypeDef *USBx, uint8_t state);
482 uint32_t          USB_GetHostSpeed(USB_OTG_GlobalTypeDef *USBx);
483 uint32_t          USB_GetCurrentFrame(USB_OTG_GlobalTypeDef *USBx);
484 HAL_StatusTypeDef USB_HC_Init(USB_OTG_GlobalTypeDef *USBx, uint8_t ch_num,
485                               uint8_t epnum, uint8_t dev_address, uint8_t speed,
486                               uint8_t ep_type, uint16_t mps);
487 HAL_StatusTypeDef USB_HC_StartXfer(USB_OTG_GlobalTypeDef *USBx,
488                                    USB_OTG_HCTypeDef *hc, uint8_t dma);
489 
490 uint32_t          USB_HC_ReadInterrupt(USB_OTG_GlobalTypeDef *USBx);
491 HAL_StatusTypeDef USB_HC_Halt(USB_OTG_GlobalTypeDef *USBx, uint8_t hc_num);
492 HAL_StatusTypeDef USB_DoPing(USB_OTG_GlobalTypeDef *USBx, uint8_t ch_num);
493 HAL_StatusTypeDef USB_StopHost(USB_OTG_GlobalTypeDef *USBx);
494 HAL_StatusTypeDef USB_ActivateRemoteWakeup(USB_OTG_GlobalTypeDef *USBx);
495 HAL_StatusTypeDef USB_DeActivateRemoteWakeup(USB_OTG_GlobalTypeDef *USBx);
496 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
497 
498 /**
499   * @}
500   */
501 
502 /**
503   * @}
504   */
505 
506 /**
507   * @}
508   */
509 
510 /**
511   * @}
512   */
513 #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
514 
515 #ifdef __cplusplus
516 }
517 #endif
518 
519 
520 #endif /* STM32F4xx_LL_USB_H */
521 
522 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
523