Subversion Repositories dashGPS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 mjames 1
/**
2
  ******************************************************************************
3
  * @file    stm32f1xx_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 STM32F1xx_LL_USB_H
22
#define STM32F1xx_LL_USB_H
23
 
24
#ifdef __cplusplus
25
extern "C" {
26
#endif
27
 
28
/* Includes ------------------------------------------------------------------*/
29
#include "stm32f1xx_hal_def.h"
30
 
31
#if defined (USB) || defined (USB_OTG_FS)
32
/** @addtogroup STM32F1xx_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)
46
 
47
typedef enum
48
{
49
  USB_DEVICE_MODE  = 0,
50
  USB_HOST_MODE    = 1,
51
  USB_DRD_MODE     = 2
52
} USB_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 OTG 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 USB_Core_Speed_                */
98
 
99
  uint32_t dma_enable;              /*!< Enable or disable of the USB embedded DMA used only for OTG HS.        */
100
 
101
  uint32_t ep0_mps;                 /*!< Set the Endpoint 0 Max Packet size.                                    */
102
 
103
  uint32_t phy_itface;              /*!< Select the used PHY interface.
104
                                         This parameter can be any value of @ref USB_Core_PHY_                  */
105
 
106
  uint32_t Sof_enable;              /*!< Enable or disable the output of the SOF signal.                        */
107
 
108
  uint32_t low_power_enable;        /*!< Enable or disable the low power mode.                                  */
109
 
110
  uint32_t lpm_enable;              /*!< Enable or disable Link Power Management.                               */
111
 
112
  uint32_t battery_charging_enable; /*!< Enable or disable Battery charging.                                    */
113
 
114
  uint32_t vbus_sensing_enable;     /*!< Enable or disable the VBUS Sensing feature.                            */
115
 
116
  uint32_t use_dedicated_ep1;       /*!< Enable or disable the use of the dedicated EP1 interrupt.              */
117
 
118
  uint32_t use_external_vbus;       /*!< Enable or disable the use of the external VBUS.                        */
119
} USB_OTG_CfgTypeDef;
120
 
121
typedef struct
122
{
123
  uint8_t   num;                  /*!< Endpoint number
124
                                       This parameter must be a number between Min_Data = 1 and Max_Data = 15   */
125
 
126
  uint8_t   is_in;                /*!< Endpoint direction
127
                                       This parameter must be a number between Min_Data = 0 and Max_Data = 1    */
128
 
129
  uint8_t   is_stall;             /*!< Endpoint stall condition
130
                                       This parameter must be a number between Min_Data = 0 and Max_Data = 1    */
131
 
132
  uint8_t   type;                 /*!< Endpoint type
133
                                       This parameter can be any value of @ref USB_EP_Type_                     */
134
 
135
  uint8_t   data_pid_start;       /*!< Initial data PID
136
                                       This parameter must be a number between Min_Data = 0 and Max_Data = 1    */
137
 
138
  uint8_t   even_odd_frame;       /*!< IFrame parity
139
                                       This parameter must be a number between Min_Data = 0 and Max_Data = 1    */
140
 
141
  uint16_t  tx_fifo_num;          /*!< Transmission FIFO number
142
                                       This parameter must be a number between Min_Data = 1 and Max_Data = 15   */
143
 
144
  uint32_t  maxpacket;            /*!< Endpoint Max packet size
145
                                       This parameter must be a number between Min_Data = 0 and Max_Data = 64KB */
146
 
147
  uint8_t   *xfer_buff;           /*!< Pointer to transfer buffer                                               */
148
 
149
  uint32_t  dma_addr;             /*!< 32 bits aligned transfer buffer address                                  */
150
 
151
  uint32_t  xfer_len;             /*!< Current transfer length                                                  */
152
 
153
  uint32_t  xfer_count;           /*!< Partial transfer length in case of multi packet transfer                 */
154
} USB_OTG_EPTypeDef;
155
 
156
typedef struct
157
{
158
  uint8_t   dev_addr ;          /*!< USB device address.
159
                                     This parameter must be a number between Min_Data = 1 and Max_Data = 255    */
160
 
161
  uint8_t   ch_num;             /*!< Host channel number.
162
                                     This parameter must be a number between Min_Data = 1 and Max_Data = 15     */
163
 
164
  uint8_t   ep_num;             /*!< Endpoint number.
165
                                     This parameter must be a number between Min_Data = 1 and Max_Data = 15     */
166
 
167
  uint8_t   ep_is_in;           /*!< Endpoint direction
168
                                     This parameter must be a number between Min_Data = 0 and Max_Data = 1      */
169
 
170
  uint8_t   speed;              /*!< USB Host speed.
171
                                     This parameter can be any value of @ref USB_Core_Speed_                    */
172
 
173
  uint8_t   do_ping;            /*!< Enable or disable the use of the PING protocol for HS mode.                */
174
 
175
  uint8_t   process_ping;       /*!< Execute the PING protocol for HS mode.                                     */
176
 
177
  uint8_t   ep_type;            /*!< Endpoint Type.
178
                                     This parameter can be any value of @ref USB_EP_Type_                       */
179
 
180
  uint16_t  max_packet;         /*!< Endpoint Max packet size.
181
                                     This parameter must be a number between Min_Data = 0 and Max_Data = 64KB   */
182
 
183
  uint8_t   data_pid;           /*!< Initial data PID.
184
                                     This parameter must be a number between Min_Data = 0 and Max_Data = 1      */
185
 
186
  uint8_t   *xfer_buff;         /*!< Pointer to transfer buffer.                                                */
187
 
188
  uint32_t  xfer_len;           /*!< Current transfer length.                                                   */
189
 
190
  uint32_t  xfer_count;         /*!< Partial transfer length in case of multi packet transfer.                  */
191
 
192
  uint8_t   toggle_in;          /*!< IN transfer current toggle flag.
193
                                     This parameter must be a number between Min_Data = 0 and Max_Data = 1      */
194
 
195
  uint8_t   toggle_out;         /*!< OUT transfer current toggle flag
196
                                     This parameter must be a number between Min_Data = 0 and Max_Data = 1      */
197
 
198
  uint32_t  dma_addr;           /*!< 32 bits aligned transfer buffer address.                                   */
199
 
200
  uint32_t  ErrCnt;             /*!< Host channel error count.*/
201
 
202
  USB_OTG_URBStateTypeDef  urb_state;  /*!< URB state.
203
                                            This parameter can be any value of @ref USB_OTG_URBStateTypeDef */
204
 
205
  USB_OTG_HCStateTypeDef   state;     /*!< Host Channel state.
206
                                           This parameter can be any value of @ref USB_OTG_HCStateTypeDef   */
207
} USB_OTG_HCTypeDef;
208
#endif /* defined (USB_OTG_FS) */
209
 
210
#if defined (USB)
211
 
212
typedef enum
213
{
214
  USB_DEVICE_MODE  = 0
215
} USB_ModeTypeDef;
216
 
217
/**
218
  * @brief  USB Initialization Structure definition
219
  */
220
typedef struct
221
{
222
  uint32_t dev_endpoints;           /*!< Device Endpoints number.
223
                                         This parameter depends on the used USB core.
224
                                         This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
225
 
226
  uint32_t speed;                   /*!< USB Core speed.
227
                                         This parameter can be any value of @ref USB_Core_Speed                 */
228
 
229
  uint32_t ep0_mps;                 /*!< Set the Endpoint 0 Max Packet size.                                    */
230
 
231
  uint32_t phy_itface;              /*!< Select the used PHY interface.
232
                                         This parameter can be any value of @ref USB_Core_PHY                   */
233
 
234
  uint32_t Sof_enable;              /*!< Enable or disable the output of the SOF signal.                        */
235
 
236
  uint32_t low_power_enable;        /*!< Enable or disable Low Power mode                                       */
237
 
238
  uint32_t lpm_enable;              /*!< Enable or disable Battery charging.                                    */
239
 
240
  uint32_t battery_charging_enable; /*!< Enable or disable Battery charging.                                    */
241
} USB_CfgTypeDef;
242
 
243
typedef struct
244
{
245
  uint8_t   num;             /*!< Endpoint number
246
                                  This parameter must be a number between Min_Data = 1 and Max_Data = 15    */
247
 
248
  uint8_t   is_in;           /*!< Endpoint direction
249
                                  This parameter must be a number between Min_Data = 0 and Max_Data = 1     */
250
 
251
  uint8_t   is_stall;        /*!< Endpoint stall condition
252
                                  This parameter must be a number between Min_Data = 0 and Max_Data = 1     */
253
 
254
  uint8_t   type;            /*!< Endpoint type
255
                                  This parameter can be any value of @ref USB_EP_Type                       */
256
 
257
  uint8_t   data_pid_start;  /*!< Initial data PID
258
                                  This parameter must be a number between Min_Data = 0 and Max_Data = 1     */
259
 
260
  uint16_t  pmaadress;       /*!< PMA Address
261
                                  This parameter can be any value between Min_addr = 0 and Max_addr = 1K    */
262
 
263
  uint16_t  pmaaddr0;        /*!< PMA Address0
264
                                  This parameter can be any value between Min_addr = 0 and Max_addr = 1K    */
265
 
266
  uint16_t  pmaaddr1;        /*!< PMA Address1
267
                                  This parameter can be any value between Min_addr = 0 and Max_addr = 1K    */
268
 
269
  uint8_t   doublebuffer;    /*!< Double buffer enable
270
                                  This parameter can be 0 or 1                                              */
271
 
272
  uint16_t  tx_fifo_num;     /*!< This parameter is not required by USB Device FS peripheral, it is used
273
                                  only by USB OTG FS peripheral
274
                                  This parameter is added to ensure compatibility across USB peripherals    */
275
 
276
  uint32_t  maxpacket;       /*!< Endpoint Max packet size
277
                                  This parameter must be a number between Min_Data = 0 and Max_Data = 64KB  */
278
 
279
  uint8_t   *xfer_buff;      /*!< Pointer to transfer buffer                                                */
280
 
281
  uint32_t  xfer_len;        /*!< Current transfer length                                                   */
282
 
283
  uint32_t  xfer_count;      /*!< Partial transfer length in case of multi packet transfer                  */
284
 
285
} USB_EPTypeDef;
286
#endif /* defined (USB) */
287
 
288
/* Exported constants --------------------------------------------------------*/
289
 
290
/** @defgroup PCD_Exported_Constants PCD Exported Constants
291
  * @{
292
  */
293
 
294
#if defined (USB_OTG_FS)
295
/** @defgroup USB_OTG_CORE VERSION ID
296
  * @{
297
  */
298
#define USB_OTG_CORE_ID_300A          0x4F54300AU
299
#define USB_OTG_CORE_ID_310A          0x4F54310AU
300
/**
301
  * @}
302
  */
303
 
304
/** @defgroup USB_Core_Mode_ USB Core Mode
305
  * @{
306
  */
307
#define USB_OTG_MODE_DEVICE                    0U
308
#define USB_OTG_MODE_HOST                      1U
309
#define USB_OTG_MODE_DRD                       2U
310
/**
311
  * @}
312
  */
313
 
314
/** @defgroup USB_LL Device Speed
315
  * @{
316
  */
317
#define USBD_FS_SPEED               2U
318
#define USBH_FS_SPEED               1U
319
/**
320
  * @}
321
  */
322
 
323
/** @defgroup USB_LL_Core_Speed USB Low Layer Core Speed
324
  * @{
325
  */
326
#define USB_OTG_SPEED_FULL                     3U
327
/**
328
  * @}
329
  */
330
 
331
/** @defgroup USB_LL_Core_PHY USB Low Layer Core PHY
332
  * @{
333
  */
334
#define USB_OTG_ULPI_PHY                       1U
335
#define USB_OTG_EMBEDDED_PHY                   2U
336
/**
337
  * @}
338
  */
339
 
340
/** @defgroup USB_LL_Turnaround_Timeout Turnaround Timeout Value
341
  * @{
342
  */
343
#ifndef USBD_FS_TRDT_VALUE
344
#define USBD_FS_TRDT_VALUE           5U
345
#define USBD_DEFAULT_TRDT_VALUE      9U
346
#endif /* USBD_HS_TRDT_VALUE */
347
/**
348
  * @}
349
  */
350
 
351
/** @defgroup USB_LL_Core_MPS USB Low Layer Core MPS
352
  * @{
353
  */
354
#define USB_OTG_FS_MAX_PACKET_SIZE             64U
355
#define USB_OTG_MAX_EP0_SIZE                   64U
356
/**
357
  * @}
358
  */
359
 
360
/** @defgroup USB_LL_Core_PHY_Frequency USB Low Layer Core PHY Frequency
361
  * @{
362
  */
363
#define DSTS_ENUMSPD_HS_PHY_30MHZ_OR_60MHZ     (0U << 1)
364
#define DSTS_ENUMSPD_FS_PHY_30MHZ_OR_60MHZ     (1U << 1)
365
#define DSTS_ENUMSPD_FS_PHY_48MHZ              (3U << 1)
366
/**
367
  * @}
368
  */
369
 
370
/** @defgroup USB_LL_CORE_Frame_Interval USB Low Layer Core Frame Interval
371
  * @{
372
  */
373
#define DCFG_FRAME_INTERVAL_80                 0U
374
#define DCFG_FRAME_INTERVAL_85                 1U
375
#define DCFG_FRAME_INTERVAL_90                 2U
376
#define DCFG_FRAME_INTERVAL_95                 3U
377
/**
378
  * @}
379
  */
380
 
381
/** @defgroup USB_LL_EP0_MPS USB Low Layer EP0 MPS
382
  * @{
383
  */
384
#define DEP0CTL_MPS_64                         0U
385
#define DEP0CTL_MPS_32                         1U
386
#define DEP0CTL_MPS_16                         2U
387
#define DEP0CTL_MPS_8                          3U
388
/**
389
  * @}
390
  */
391
 
392
/** @defgroup USB_LL_EP_Speed USB Low Layer EP Speed
393
  * @{
394
  */
395
#define EP_SPEED_LOW                           0U
396
#define EP_SPEED_FULL                          1U
397
#define EP_SPEED_HIGH                          2U
398
/**
399
  * @}
400
  */
401
 
402
/** @defgroup USB_LL_EP_Type USB Low Layer EP Type
403
  * @{
404
  */
405
#define EP_TYPE_CTRL                           0U
406
#define EP_TYPE_ISOC                           1U
407
#define EP_TYPE_BULK                           2U
408
#define EP_TYPE_INTR                           3U
409
#define EP_TYPE_MSK                            3U
410
/**
411
  * @}
412
  */
413
 
414
/** @defgroup USB_LL_STS_Defines USB Low Layer STS Defines
415
  * @{
416
  */
417
#define STS_GOUT_NAK                           1U
418
#define STS_DATA_UPDT                          2U
419
#define STS_XFER_COMP                          3U
420
#define STS_SETUP_COMP                         4U
421
#define STS_SETUP_UPDT                         6U
422
/**
423
  * @}
424
  */
425
 
426
/** @defgroup USB_LL_HCFG_SPEED_Defines USB Low Layer HCFG Speed Defines
427
  * @{
428
  */
429
#define HCFG_30_60_MHZ                         0U
430
#define HCFG_48_MHZ                            1U
431
#define HCFG_6_MHZ                             2U
432
/**
433
  * @}
434
  */
435
 
436
/** @defgroup USB_LL_HPRT0_PRTSPD_SPEED_Defines USB Low Layer HPRT0 PRTSPD Speed Defines
437
  * @{
438
  */
439
#define HPRT0_PRTSPD_HIGH_SPEED                0U
440
#define HPRT0_PRTSPD_FULL_SPEED                1U
441
#define HPRT0_PRTSPD_LOW_SPEED                 2U
442
/**
443
  * @}
444
  */
445
 
446
#define HCCHAR_CTRL                            0U
447
#define HCCHAR_ISOC                            1U
448
#define HCCHAR_BULK                            2U
449
#define HCCHAR_INTR                            3U
450
 
451
#define HC_PID_DATA0                           0U
452
#define HC_PID_DATA2                           1U
453
#define HC_PID_DATA1                           2U
454
#define HC_PID_SETUP                           3U
455
 
456
#define GRXSTS_PKTSTS_IN                       2U
457
#define GRXSTS_PKTSTS_IN_XFER_COMP             3U
458
#define GRXSTS_PKTSTS_DATA_TOGGLE_ERR          5U
459
#define GRXSTS_PKTSTS_CH_HALTED                7U
460
 
461
#define USBx_PCGCCTL    *(__IO uint32_t *)((uint32_t)USBx_BASE + USB_OTG_PCGCCTL_BASE)
462
#define USBx_HPRT0      *(__IO uint32_t *)((uint32_t)USBx_BASE + USB_OTG_HOST_PORT_BASE)
463
 
464
#define USBx_DEVICE     ((USB_OTG_DeviceTypeDef *)(USBx_BASE + USB_OTG_DEVICE_BASE))
465
#define USBx_INEP(i)    ((USB_OTG_INEndpointTypeDef *)(USBx_BASE + USB_OTG_IN_ENDPOINT_BASE + ((i) * USB_OTG_EP_REG_SIZE)))
466
#define USBx_OUTEP(i)   ((USB_OTG_OUTEndpointTypeDef *)(USBx_BASE + USB_OTG_OUT_ENDPOINT_BASE + ((i) * USB_OTG_EP_REG_SIZE)))
467
#define USBx_DFIFO(i)   *(__IO uint32_t *)(USBx_BASE + USB_OTG_FIFO_BASE + ((i) * USB_OTG_FIFO_SIZE))
468
 
469
#define USBx_HOST       ((USB_OTG_HostTypeDef *)(USBx_BASE + USB_OTG_HOST_BASE))
470
#define USBx_HC(i)      ((USB_OTG_HostChannelTypeDef *)(USBx_BASE + USB_OTG_HOST_CHANNEL_BASE + ((i) * USB_OTG_HOST_CHANNEL_SIZE)))
471
#endif /* defined (USB_OTG_FS) */
472
 
473
#if defined (USB)
474
/** @defgroup USB_LL_EP0_MPS USB Low Layer EP0 MPS
475
  * @{
476
  */
477
#define DEP0CTL_MPS_64                         0U
478
#define DEP0CTL_MPS_32                         1U
479
#define DEP0CTL_MPS_16                         2U
480
#define DEP0CTL_MPS_8                          3U
481
/**
482
  * @}
483
  */
484
 
485
/** @defgroup USB_LL_EP_Type USB Low Layer EP Type
486
  * @{
487
  */
488
#define EP_TYPE_CTRL                           0U
489
#define EP_TYPE_ISOC                           1U
490
#define EP_TYPE_BULK                           2U
491
#define EP_TYPE_INTR                           3U
492
#define EP_TYPE_MSK                            3U
493
/**
494
  * @}
495
  */
496
 
497
/** @defgroup USB_LL Device Speed
498
  * @{
499
  */
500
#define USBD_FS_SPEED                          2U
501
/**
502
  * @}
503
  */
504
 
505
#define BTABLE_ADDRESS                         0x000U
506
#define PMA_ACCESS                             2U
507
#endif /* defined (USB) */
508
#if defined (USB_OTG_FS)
509
#define EP_ADDR_MSK                            0xFU
510
#endif /* defined (USB_OTG_FS) */
511
#if defined (USB)
512
#define EP_ADDR_MSK                            0x7U
513
#endif /* defined (USB) */
514
/**
515
  * @}
516
  */
517
 
518
/* Exported macro ------------------------------------------------------------*/
519
/** @defgroup USB_LL_Exported_Macros USB Low Layer Exported Macros
520
  * @{
521
  */
522
#if defined (USB_OTG_FS)
523
#define USB_MASK_INTERRUPT(__INSTANCE__, __INTERRUPT__)     ((__INSTANCE__)->GINTMSK &= ~(__INTERRUPT__))
524
#define USB_UNMASK_INTERRUPT(__INSTANCE__, __INTERRUPT__)   ((__INSTANCE__)->GINTMSK |= (__INTERRUPT__))
525
 
526
#define CLEAR_IN_EP_INTR(__EPNUM__, __INTERRUPT__)          (USBx_INEP(__EPNUM__)->DIEPINT = (__INTERRUPT__))
527
#define CLEAR_OUT_EP_INTR(__EPNUM__, __INTERRUPT__)         (USBx_OUTEP(__EPNUM__)->DOEPINT = (__INTERRUPT__))
528
#endif /* defined (USB_OTG_FS) */
529
/**
530
  * @}
531
  */
532
 
533
/* Exported functions --------------------------------------------------------*/
534
/** @addtogroup USB_LL_Exported_Functions USB Low Layer Exported Functions
535
  * @{
536
  */
537
#if defined (USB_OTG_FS)
538
HAL_StatusTypeDef USB_CoreInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg);
539
HAL_StatusTypeDef USB_DevInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg);
540
HAL_StatusTypeDef USB_EnableGlobalInt(USB_OTG_GlobalTypeDef *USBx);
541
HAL_StatusTypeDef USB_DisableGlobalInt(USB_OTG_GlobalTypeDef *USBx);
542
HAL_StatusTypeDef USB_SetTurnaroundTime(USB_OTG_GlobalTypeDef *USBx, uint32_t hclk, uint8_t speed);
543
HAL_StatusTypeDef USB_SetCurrentMode(USB_OTG_GlobalTypeDef *USBx, USB_ModeTypeDef mode);
544
HAL_StatusTypeDef USB_SetDevSpeed(USB_OTG_GlobalTypeDef *USBx, uint8_t speed);
545
HAL_StatusTypeDef USB_FlushRxFifo(USB_OTG_GlobalTypeDef *USBx);
546
HAL_StatusTypeDef USB_FlushTxFifo(USB_OTG_GlobalTypeDef *USBx, uint32_t num);
547
HAL_StatusTypeDef USB_ActivateEndpoint(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
548
HAL_StatusTypeDef USB_DeactivateEndpoint(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
549
HAL_StatusTypeDef USB_ActivateDedicatedEndpoint(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
550
HAL_StatusTypeDef USB_DeactivateDedicatedEndpoint(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
551
HAL_StatusTypeDef USB_EPStartXfer(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
552
HAL_StatusTypeDef USB_EP0StartXfer(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
553
HAL_StatusTypeDef USB_WritePacket(USB_OTG_GlobalTypeDef *USBx, uint8_t *src, uint8_t ch_ep_num, uint16_t len);
554
void             *USB_ReadPacket(USB_OTG_GlobalTypeDef *USBx, uint8_t *dest, uint16_t len);
555
HAL_StatusTypeDef USB_EPSetStall(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
556
HAL_StatusTypeDef USB_EPClearStall(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
557
HAL_StatusTypeDef USB_SetDevAddress(USB_OTG_GlobalTypeDef *USBx, uint8_t address);
558
HAL_StatusTypeDef USB_DevConnect(USB_OTG_GlobalTypeDef *USBx);
559
HAL_StatusTypeDef USB_DevDisconnect(USB_OTG_GlobalTypeDef *USBx);
560
HAL_StatusTypeDef USB_StopDevice(USB_OTG_GlobalTypeDef *USBx);
561
HAL_StatusTypeDef USB_ActivateSetup(USB_OTG_GlobalTypeDef *USBx);
562
HAL_StatusTypeDef USB_EP0_OutStart(USB_OTG_GlobalTypeDef *USBx, uint8_t *psetup);
563
uint8_t           USB_GetDevSpeed(USB_OTG_GlobalTypeDef *USBx);
564
uint32_t          USB_GetMode(USB_OTG_GlobalTypeDef *USBx);
565
uint32_t          USB_ReadInterrupts(USB_OTG_GlobalTypeDef *USBx);
566
uint32_t          USB_ReadDevAllOutEpInterrupt(USB_OTG_GlobalTypeDef *USBx);
567
uint32_t          USB_ReadDevOutEPInterrupt(USB_OTG_GlobalTypeDef *USBx, uint8_t epnum);
568
uint32_t          USB_ReadDevAllInEpInterrupt(USB_OTG_GlobalTypeDef *USBx);
569
uint32_t          USB_ReadDevInEPInterrupt(USB_OTG_GlobalTypeDef *USBx, uint8_t epnum);
570
void              USB_ClearInterrupts(USB_OTG_GlobalTypeDef *USBx, uint32_t interrupt);
571
 
572
HAL_StatusTypeDef USB_HostInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg);
573
HAL_StatusTypeDef USB_InitFSLSPClkSel(USB_OTG_GlobalTypeDef *USBx, uint8_t freq);
574
HAL_StatusTypeDef USB_ResetPort(USB_OTG_GlobalTypeDef *USBx);
575
HAL_StatusTypeDef USB_DriveVbus(USB_OTG_GlobalTypeDef *USBx, uint8_t state);
576
uint32_t          USB_GetHostSpeed(USB_OTG_GlobalTypeDef *USBx);
577
uint32_t          USB_GetCurrentFrame(USB_OTG_GlobalTypeDef *USBx);
578
HAL_StatusTypeDef USB_HC_Init(USB_OTG_GlobalTypeDef *USBx,
579
                              uint8_t ch_num,
580
                              uint8_t epnum,
581
                              uint8_t dev_address,
582
                              uint8_t speed,
583
                              uint8_t ep_type,
584
                              uint16_t mps);
585
HAL_StatusTypeDef USB_HC_StartXfer(USB_OTG_GlobalTypeDef *USBx, USB_OTG_HCTypeDef *hc);
586
uint32_t          USB_HC_ReadInterrupt(USB_OTG_GlobalTypeDef *USBx);
587
HAL_StatusTypeDef USB_HC_Halt(USB_OTG_GlobalTypeDef *USBx, uint8_t hc_num);
588
HAL_StatusTypeDef USB_DoPing(USB_OTG_GlobalTypeDef *USBx, uint8_t ch_num);
589
HAL_StatusTypeDef USB_StopHost(USB_OTG_GlobalTypeDef *USBx);
590
HAL_StatusTypeDef USB_ActivateRemoteWakeup(USB_OTG_GlobalTypeDef *USBx);
591
HAL_StatusTypeDef USB_DeActivateRemoteWakeup(USB_OTG_GlobalTypeDef *USBx);
592
#endif /* defined (USB_OTG_FS) */
593
 
594
#if defined (USB)
595
HAL_StatusTypeDef USB_CoreInit(USB_TypeDef *USBx, USB_CfgTypeDef cfg);
596
HAL_StatusTypeDef USB_DevInit(USB_TypeDef *USBx, USB_CfgTypeDef cfg);
597
HAL_StatusTypeDef USB_EnableGlobalInt(USB_TypeDef *USBx);
598
HAL_StatusTypeDef USB_DisableGlobalInt(USB_TypeDef *USBx);
599
HAL_StatusTypeDef USB_SetCurrentMode(USB_TypeDef *USBx, USB_ModeTypeDef mode);
600
HAL_StatusTypeDef USB_SetDevSpeed(USB_TypeDef *USBx, uint8_t speed);
601
HAL_StatusTypeDef USB_FlushRxFifo(USB_TypeDef *USBx);
602
HAL_StatusTypeDef USB_FlushTxFifo(USB_TypeDef *USBx, uint32_t num);
603
HAL_StatusTypeDef USB_ActivateEndpoint(USB_TypeDef *USBx, USB_EPTypeDef *ep);
604
HAL_StatusTypeDef USB_DeactivateEndpoint(USB_TypeDef *USBx, USB_EPTypeDef *ep);
605
HAL_StatusTypeDef USB_EPStartXfer(USB_TypeDef *USBx, USB_EPTypeDef *ep);
606
HAL_StatusTypeDef USB_WritePacket(USB_TypeDef *USBx, uint8_t *src, uint8_t ch_ep_num, uint16_t len);
607
void             *USB_ReadPacket(USB_TypeDef *USBx, uint8_t *dest, uint16_t len);
608
HAL_StatusTypeDef USB_EPSetStall(USB_TypeDef *USBx, USB_EPTypeDef *ep);
609
HAL_StatusTypeDef USB_EPClearStall(USB_TypeDef *USBx, USB_EPTypeDef *ep);
610
HAL_StatusTypeDef USB_SetDevAddress(USB_TypeDef *USBx, uint8_t address);
611
HAL_StatusTypeDef USB_DevConnect(USB_TypeDef *USBx);
612
HAL_StatusTypeDef USB_DevDisconnect(USB_TypeDef *USBx);
613
HAL_StatusTypeDef USB_StopDevice(USB_TypeDef *USBx);
614
HAL_StatusTypeDef USB_EP0_OutStart(USB_TypeDef *USBx, uint8_t *psetup);
615
uint32_t          USB_ReadInterrupts(USB_TypeDef *USBx);
616
uint32_t          USB_ReadDevAllOutEpInterrupt(USB_TypeDef *USBx);
617
uint32_t          USB_ReadDevOutEPInterrupt(USB_TypeDef *USBx, uint8_t epnum);
618
uint32_t          USB_ReadDevAllInEpInterrupt(USB_TypeDef *USBx);
619
uint32_t          USB_ReadDevInEPInterrupt(USB_TypeDef *USBx, uint8_t epnum);
620
void              USB_ClearInterrupts(USB_TypeDef *USBx, uint32_t interrupt);
621
 
622
HAL_StatusTypeDef USB_ActivateRemoteWakeup(USB_TypeDef *USBx);
623
HAL_StatusTypeDef USB_DeActivateRemoteWakeup(USB_TypeDef *USBx);
624
void USB_WritePMA(USB_TypeDef  *USBx, uint8_t *pbUsrBuf, uint16_t wPMABufAddr, uint16_t wNBytes);
625
void USB_ReadPMA(USB_TypeDef  *USBx, uint8_t *pbUsrBuf, uint16_t wPMABufAddr, uint16_t wNBytes);
626
#endif /* defined (USB) */
627
/**
628
  * @}
629
  */
630
 
631
/**
632
  * @}
633
  */
634
 
635
/**
636
  * @}
637
  */
638
 
639
/**
640
  * @}
641
  */
642
#endif /* defined (USB) || defined (USB_OTG_FS) */
643
 
644
#ifdef __cplusplus
645
}
646
#endif
647
 
648
 
649
#endif /* STM32F1xx_LL_USB_H */
650
 
651
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/