mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
AnnaBridge
Date:
Wed Feb 20 22:31:08 2019 +0000
Revision:
189:f392fc9709a3
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 189:f392fc9709a3 1 /**
AnnaBridge 189:f392fc9709a3 2 ******************************************************************************
AnnaBridge 189:f392fc9709a3 3 * @file stm32l4xx_ll_usb.h
AnnaBridge 189:f392fc9709a3 4 * @author MCD Application Team
AnnaBridge 189:f392fc9709a3 5 * @brief Header file of USB Core HAL module.
AnnaBridge 189:f392fc9709a3 6 ******************************************************************************
AnnaBridge 189:f392fc9709a3 7 * @attention
AnnaBridge 189:f392fc9709a3 8 *
AnnaBridge 189:f392fc9709a3 9 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
AnnaBridge 189:f392fc9709a3 10 *
AnnaBridge 189:f392fc9709a3 11 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 189:f392fc9709a3 12 * are permitted provided that the following conditions are met:
AnnaBridge 189:f392fc9709a3 13 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 189:f392fc9709a3 14 * this list of conditions and the following disclaimer.
AnnaBridge 189:f392fc9709a3 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 189:f392fc9709a3 16 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 189:f392fc9709a3 17 * and/or other materials provided with the distribution.
AnnaBridge 189:f392fc9709a3 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 189:f392fc9709a3 19 * may be used to endorse or promote products derived from this software
AnnaBridge 189:f392fc9709a3 20 * without specific prior written permission.
AnnaBridge 189:f392fc9709a3 21 *
AnnaBridge 189:f392fc9709a3 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 189:f392fc9709a3 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 189:f392fc9709a3 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 189:f392fc9709a3 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 189:f392fc9709a3 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 189:f392fc9709a3 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 189:f392fc9709a3 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 189:f392fc9709a3 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 189:f392fc9709a3 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 189:f392fc9709a3 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 189:f392fc9709a3 32 *
AnnaBridge 189:f392fc9709a3 33 ******************************************************************************
AnnaBridge 189:f392fc9709a3 34 */
AnnaBridge 189:f392fc9709a3 35
AnnaBridge 189:f392fc9709a3 36 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 189:f392fc9709a3 37 #ifndef __STM32L4xx_LL_USB_H
AnnaBridge 189:f392fc9709a3 38 #define __STM32L4xx_LL_USB_H
AnnaBridge 189:f392fc9709a3 39
AnnaBridge 189:f392fc9709a3 40 #ifdef __cplusplus
AnnaBridge 189:f392fc9709a3 41 extern "C" {
AnnaBridge 189:f392fc9709a3 42 #endif
AnnaBridge 189:f392fc9709a3 43
AnnaBridge 189:f392fc9709a3 44 #if defined(STM32L432xx) || defined(STM32L433xx) || defined(STM32L442xx) || defined(STM32L443xx) || \
AnnaBridge 189:f392fc9709a3 45 defined(STM32L452xx) || defined(STM32L462xx) || \
AnnaBridge 189:f392fc9709a3 46 defined(STM32L475xx) || defined(STM32L476xx) || defined(STM32L485xx) || defined(STM32L486xx) || \
AnnaBridge 189:f392fc9709a3 47 defined(STM32L496xx) || defined(STM32L4A6xx) || \
AnnaBridge 189:f392fc9709a3 48 defined(STM32L4R5xx) || defined(STM32L4R7xx) || defined(STM32L4R9xx) || defined(STM32L4S5xx) || defined(STM32L4S7xx) || defined(STM32L4S9xx)
AnnaBridge 189:f392fc9709a3 49
AnnaBridge 189:f392fc9709a3 50 /* Includes ------------------------------------------------------------------*/
AnnaBridge 189:f392fc9709a3 51 #include "stm32l4xx_hal_def.h"
AnnaBridge 189:f392fc9709a3 52
AnnaBridge 189:f392fc9709a3 53 /** @addtogroup STM32L4xx_HAL
AnnaBridge 189:f392fc9709a3 54 * @{
AnnaBridge 189:f392fc9709a3 55 */
AnnaBridge 189:f392fc9709a3 56
AnnaBridge 189:f392fc9709a3 57 /** @addtogroup USB_Core
AnnaBridge 189:f392fc9709a3 58 * @{
AnnaBridge 189:f392fc9709a3 59 */
AnnaBridge 189:f392fc9709a3 60
AnnaBridge 189:f392fc9709a3 61 /* Exported types ------------------------------------------------------------*/
AnnaBridge 189:f392fc9709a3 62
AnnaBridge 189:f392fc9709a3 63 /**
AnnaBridge 189:f392fc9709a3 64 * @brief USB Mode definition
AnnaBridge 189:f392fc9709a3 65 */
AnnaBridge 189:f392fc9709a3 66 typedef enum
AnnaBridge 189:f392fc9709a3 67 {
AnnaBridge 189:f392fc9709a3 68 USB_DEVICE_MODE = 0,
AnnaBridge 189:f392fc9709a3 69 USB_HOST_MODE = 1,
AnnaBridge 189:f392fc9709a3 70 USB_DRD_MODE = 2
AnnaBridge 189:f392fc9709a3 71
AnnaBridge 189:f392fc9709a3 72 }USB_ModeTypeDef;
AnnaBridge 189:f392fc9709a3 73
AnnaBridge 189:f392fc9709a3 74 #if defined (USB_OTG_FS)
AnnaBridge 189:f392fc9709a3 75 /**
AnnaBridge 189:f392fc9709a3 76 * @brief URB States definition
AnnaBridge 189:f392fc9709a3 77 */
AnnaBridge 189:f392fc9709a3 78 typedef enum {
AnnaBridge 189:f392fc9709a3 79 URB_IDLE = 0,
AnnaBridge 189:f392fc9709a3 80 URB_DONE,
AnnaBridge 189:f392fc9709a3 81 URB_NOTREADY,
AnnaBridge 189:f392fc9709a3 82 URB_NYET,
AnnaBridge 189:f392fc9709a3 83 URB_ERROR,
AnnaBridge 189:f392fc9709a3 84 URB_STALL
AnnaBridge 189:f392fc9709a3 85
AnnaBridge 189:f392fc9709a3 86 }USB_OTG_URBStateTypeDef;
AnnaBridge 189:f392fc9709a3 87
AnnaBridge 189:f392fc9709a3 88 /**
AnnaBridge 189:f392fc9709a3 89 * @brief Host channel States definition
AnnaBridge 189:f392fc9709a3 90 */
AnnaBridge 189:f392fc9709a3 91 typedef enum {
AnnaBridge 189:f392fc9709a3 92 HC_IDLE = 0,
AnnaBridge 189:f392fc9709a3 93 HC_XFRC,
AnnaBridge 189:f392fc9709a3 94 HC_HALTED,
AnnaBridge 189:f392fc9709a3 95 HC_NAK,
AnnaBridge 189:f392fc9709a3 96 HC_NYET,
AnnaBridge 189:f392fc9709a3 97 HC_STALL,
AnnaBridge 189:f392fc9709a3 98 HC_XACTERR,
AnnaBridge 189:f392fc9709a3 99 HC_BBLERR,
AnnaBridge 189:f392fc9709a3 100 HC_DATATGLERR
AnnaBridge 189:f392fc9709a3 101
AnnaBridge 189:f392fc9709a3 102 }USB_OTG_HCStateTypeDef;
AnnaBridge 189:f392fc9709a3 103
AnnaBridge 189:f392fc9709a3 104 /**
AnnaBridge 189:f392fc9709a3 105 * @brief PCD Initialization Structure definition
AnnaBridge 189:f392fc9709a3 106 */
AnnaBridge 189:f392fc9709a3 107 typedef struct
AnnaBridge 189:f392fc9709a3 108 {
AnnaBridge 189:f392fc9709a3 109 uint32_t dev_endpoints; /*!< Device Endpoints number.
AnnaBridge 189:f392fc9709a3 110 This parameter depends on the used USB core.
AnnaBridge 189:f392fc9709a3 111 This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
AnnaBridge 189:f392fc9709a3 112
AnnaBridge 189:f392fc9709a3 113 uint32_t Host_channels; /*!< Host Channels number.
AnnaBridge 189:f392fc9709a3 114 This parameter Depends on the used USB core.
AnnaBridge 189:f392fc9709a3 115 This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
AnnaBridge 189:f392fc9709a3 116
AnnaBridge 189:f392fc9709a3 117 uint32_t speed; /*!< USB Core speed.
AnnaBridge 189:f392fc9709a3 118 This parameter can be any value of @ref USB_Core_Speed_ */
AnnaBridge 189:f392fc9709a3 119
AnnaBridge 189:f392fc9709a3 120 uint32_t dma_enable; /*!< Enable or disable of the USB embedded DMA. */
AnnaBridge 189:f392fc9709a3 121
AnnaBridge 189:f392fc9709a3 122 uint32_t ep0_mps; /*!< Set the Endpoint 0 Max Packet size.
AnnaBridge 189:f392fc9709a3 123 This parameter can be any value of @ref USB_EP0_MPS_ */
AnnaBridge 189:f392fc9709a3 124
AnnaBridge 189:f392fc9709a3 125 uint32_t phy_itface; /*!< Select the used PHY interface.
AnnaBridge 189:f392fc9709a3 126 This parameter can be any value of @ref USB_Core_PHY_ */
AnnaBridge 189:f392fc9709a3 127
AnnaBridge 189:f392fc9709a3 128 uint32_t Sof_enable; /*!< Enable or disable the output of the SOF signal. */
AnnaBridge 189:f392fc9709a3 129
AnnaBridge 189:f392fc9709a3 130 uint32_t low_power_enable; /*!< Enable or disable the low power mode. */
AnnaBridge 189:f392fc9709a3 131
AnnaBridge 189:f392fc9709a3 132 uint32_t lpm_enable; /*!< Enable or disable Battery charging. */
AnnaBridge 189:f392fc9709a3 133
AnnaBridge 189:f392fc9709a3 134 uint32_t battery_charging_enable; /*!< Enable or disable Battery charging. */
AnnaBridge 189:f392fc9709a3 135
AnnaBridge 189:f392fc9709a3 136 uint32_t vbus_sensing_enable; /*!< Enable or disable the VBUS Sensing feature. */
AnnaBridge 189:f392fc9709a3 137
AnnaBridge 189:f392fc9709a3 138 uint32_t use_dedicated_ep1; /*!< Enable or disable the use of the dedicated EP1 interrupt. */
AnnaBridge 189:f392fc9709a3 139
AnnaBridge 189:f392fc9709a3 140 uint32_t use_external_vbus; /*!< Enable or disable the use of the external VBUS. */
AnnaBridge 189:f392fc9709a3 141
AnnaBridge 189:f392fc9709a3 142 }USB_OTG_CfgTypeDef;
AnnaBridge 189:f392fc9709a3 143
AnnaBridge 189:f392fc9709a3 144 typedef struct
AnnaBridge 189:f392fc9709a3 145 {
AnnaBridge 189:f392fc9709a3 146 uint8_t num; /*!< Endpoint number
AnnaBridge 189:f392fc9709a3 147 This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
AnnaBridge 189:f392fc9709a3 148
AnnaBridge 189:f392fc9709a3 149 uint8_t is_in; /*!< Endpoint direction
AnnaBridge 189:f392fc9709a3 150 This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
AnnaBridge 189:f392fc9709a3 151
AnnaBridge 189:f392fc9709a3 152 uint8_t is_stall; /*!< Endpoint stall condition
AnnaBridge 189:f392fc9709a3 153 This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
AnnaBridge 189:f392fc9709a3 154
AnnaBridge 189:f392fc9709a3 155 uint8_t type; /*!< Endpoint type
AnnaBridge 189:f392fc9709a3 156 This parameter can be any value of @ref USB_EP_Type_ */
AnnaBridge 189:f392fc9709a3 157
AnnaBridge 189:f392fc9709a3 158 uint8_t data_pid_start; /*!< Initial data PID
AnnaBridge 189:f392fc9709a3 159 This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
AnnaBridge 189:f392fc9709a3 160
AnnaBridge 189:f392fc9709a3 161 uint8_t even_odd_frame; /*!< IFrame parity
AnnaBridge 189:f392fc9709a3 162 This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
AnnaBridge 189:f392fc9709a3 163
AnnaBridge 189:f392fc9709a3 164 uint16_t tx_fifo_num; /*!< Transmission FIFO number
AnnaBridge 189:f392fc9709a3 165 This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
AnnaBridge 189:f392fc9709a3 166
AnnaBridge 189:f392fc9709a3 167 uint32_t maxpacket; /*!< Endpoint Max packet size
AnnaBridge 189:f392fc9709a3 168 This parameter must be a number between Min_Data = 0 and Max_Data = 64KB */
AnnaBridge 189:f392fc9709a3 169
AnnaBridge 189:f392fc9709a3 170 uint8_t *xfer_buff; /*!< Pointer to transfer buffer */
AnnaBridge 189:f392fc9709a3 171
AnnaBridge 189:f392fc9709a3 172 uint32_t dma_addr; /*!< 32 bits aligned transfer buffer address */
AnnaBridge 189:f392fc9709a3 173
AnnaBridge 189:f392fc9709a3 174 uint32_t xfer_len; /*!< Current transfer length */
AnnaBridge 189:f392fc9709a3 175
AnnaBridge 189:f392fc9709a3 176 uint32_t xfer_count; /*!< Partial transfer length in case of multi packet transfer */
AnnaBridge 189:f392fc9709a3 177
AnnaBridge 189:f392fc9709a3 178 }USB_OTG_EPTypeDef;
AnnaBridge 189:f392fc9709a3 179
AnnaBridge 189:f392fc9709a3 180 typedef struct
AnnaBridge 189:f392fc9709a3 181 {
AnnaBridge 189:f392fc9709a3 182 uint8_t dev_addr ; /*!< USB device address.
AnnaBridge 189:f392fc9709a3 183 This parameter must be a number between Min_Data = 1 and Max_Data = 255 */
AnnaBridge 189:f392fc9709a3 184
AnnaBridge 189:f392fc9709a3 185 uint8_t ch_num; /*!< Host channel number.
AnnaBridge 189:f392fc9709a3 186 This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
AnnaBridge 189:f392fc9709a3 187
AnnaBridge 189:f392fc9709a3 188 uint8_t ep_num; /*!< Endpoint number.
AnnaBridge 189:f392fc9709a3 189 This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
AnnaBridge 189:f392fc9709a3 190
AnnaBridge 189:f392fc9709a3 191 uint8_t ep_is_in; /*!< Endpoint direction
AnnaBridge 189:f392fc9709a3 192 This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
AnnaBridge 189:f392fc9709a3 193
AnnaBridge 189:f392fc9709a3 194 uint8_t speed; /*!< USB Host speed.
AnnaBridge 189:f392fc9709a3 195 This parameter can be any value of @ref USB_Core_Speed_ */
AnnaBridge 189:f392fc9709a3 196
AnnaBridge 189:f392fc9709a3 197 uint8_t do_ping; /*!< Enable or disable the use of the PING protocol for HS mode. */
AnnaBridge 189:f392fc9709a3 198
AnnaBridge 189:f392fc9709a3 199 uint8_t process_ping; /*!< Execute the PING protocol for HS mode. */
AnnaBridge 189:f392fc9709a3 200
AnnaBridge 189:f392fc9709a3 201 uint8_t ep_type; /*!< Endpoint Type.
AnnaBridge 189:f392fc9709a3 202 This parameter can be any value of @ref USB_EP_Type_ */
AnnaBridge 189:f392fc9709a3 203
AnnaBridge 189:f392fc9709a3 204 uint16_t max_packet; /*!< Endpoint Max packet size.
AnnaBridge 189:f392fc9709a3 205 This parameter must be a number between Min_Data = 0 and Max_Data = 64KB */
AnnaBridge 189:f392fc9709a3 206
AnnaBridge 189:f392fc9709a3 207 uint8_t data_pid; /*!< Initial data PID.
AnnaBridge 189:f392fc9709a3 208 This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
AnnaBridge 189:f392fc9709a3 209
AnnaBridge 189:f392fc9709a3 210 uint8_t *xfer_buff; /*!< Pointer to transfer buffer. */
AnnaBridge 189:f392fc9709a3 211
AnnaBridge 189:f392fc9709a3 212 uint32_t xfer_len; /*!< Current transfer length. */
AnnaBridge 189:f392fc9709a3 213
AnnaBridge 189:f392fc9709a3 214 uint32_t xfer_count; /*!< Partial transfer length in case of multi packet transfer. */
AnnaBridge 189:f392fc9709a3 215
AnnaBridge 189:f392fc9709a3 216 uint8_t toggle_in; /*!< IN transfer current toggle flag.
AnnaBridge 189:f392fc9709a3 217 This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
AnnaBridge 189:f392fc9709a3 218
AnnaBridge 189:f392fc9709a3 219 uint8_t toggle_out; /*!< OUT transfer current toggle flag
AnnaBridge 189:f392fc9709a3 220 This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
AnnaBridge 189:f392fc9709a3 221
AnnaBridge 189:f392fc9709a3 222 uint32_t dma_addr; /*!< 32 bits aligned transfer buffer address. */
AnnaBridge 189:f392fc9709a3 223
AnnaBridge 189:f392fc9709a3 224 uint32_t ErrCnt; /*!< Host channel error count.*/
AnnaBridge 189:f392fc9709a3 225
AnnaBridge 189:f392fc9709a3 226 USB_OTG_URBStateTypeDef urb_state; /*!< URB state.
AnnaBridge 189:f392fc9709a3 227 This parameter can be any value of @ref USB_OTG_URBStateTypeDef */
AnnaBridge 189:f392fc9709a3 228
AnnaBridge 189:f392fc9709a3 229 USB_OTG_HCStateTypeDef state; /*!< Host Channel state.
AnnaBridge 189:f392fc9709a3 230 This parameter can be any value of @ref USB_OTG_HCStateTypeDef */
AnnaBridge 189:f392fc9709a3 231
AnnaBridge 189:f392fc9709a3 232 }USB_OTG_HCTypeDef;
AnnaBridge 189:f392fc9709a3 233 #endif /* USB_OTG_FS */
AnnaBridge 189:f392fc9709a3 234
AnnaBridge 189:f392fc9709a3 235 #if defined (USB)
AnnaBridge 189:f392fc9709a3 236 /**
AnnaBridge 189:f392fc9709a3 237 * @brief USB Initialization Structure definition
AnnaBridge 189:f392fc9709a3 238 */
AnnaBridge 189:f392fc9709a3 239 typedef struct
AnnaBridge 189:f392fc9709a3 240 {
AnnaBridge 189:f392fc9709a3 241 uint32_t dev_endpoints; /*!< Device Endpoints number.
AnnaBridge 189:f392fc9709a3 242 This parameter depends on the used USB core.
AnnaBridge 189:f392fc9709a3 243 This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
AnnaBridge 189:f392fc9709a3 244
AnnaBridge 189:f392fc9709a3 245 uint32_t speed; /*!< USB Core speed.
AnnaBridge 189:f392fc9709a3 246 This parameter can be any value of @ref USB_Core_Speed */
AnnaBridge 189:f392fc9709a3 247
AnnaBridge 189:f392fc9709a3 248 uint32_t dma_enable; /*!< Enable or disable of the USB embedded DMA. */
AnnaBridge 189:f392fc9709a3 249
AnnaBridge 189:f392fc9709a3 250 uint32_t ep0_mps; /*!< Set the Endpoint 0 Max Packet size.
AnnaBridge 189:f392fc9709a3 251 This parameter can be any value of @ref USB_EP0_MPS */
AnnaBridge 189:f392fc9709a3 252
AnnaBridge 189:f392fc9709a3 253 uint32_t phy_itface; /*!< Select the used PHY interface.
AnnaBridge 189:f392fc9709a3 254 This parameter can be any value of @ref USB_Core_PHY */
AnnaBridge 189:f392fc9709a3 255
AnnaBridge 189:f392fc9709a3 256 uint32_t Sof_enable; /*!< Enable or disable the output of the SOF signal. */
AnnaBridge 189:f392fc9709a3 257
AnnaBridge 189:f392fc9709a3 258 uint32_t low_power_enable; /*!< Enable or disable Low Power mode */
AnnaBridge 189:f392fc9709a3 259
AnnaBridge 189:f392fc9709a3 260 uint32_t lpm_enable; /*!< Enable or disable Battery charging. */
AnnaBridge 189:f392fc9709a3 261
AnnaBridge 189:f392fc9709a3 262 uint32_t battery_charging_enable; /*!< Enable or disable Battery charging. */
AnnaBridge 189:f392fc9709a3 263 } USB_CfgTypeDef;
AnnaBridge 189:f392fc9709a3 264
AnnaBridge 189:f392fc9709a3 265 typedef struct
AnnaBridge 189:f392fc9709a3 266 {
AnnaBridge 189:f392fc9709a3 267 uint8_t num; /*!< Endpoint number
AnnaBridge 189:f392fc9709a3 268 This parameter must be a number between Min_Data = 1 and Max_Data = 15 */
AnnaBridge 189:f392fc9709a3 269
AnnaBridge 189:f392fc9709a3 270 uint8_t is_in; /*!< Endpoint direction
AnnaBridge 189:f392fc9709a3 271 This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
AnnaBridge 189:f392fc9709a3 272
AnnaBridge 189:f392fc9709a3 273 uint8_t is_stall; /*!< Endpoint stall condition
AnnaBridge 189:f392fc9709a3 274 This parameter must be a number between Min_Data = 0 and Max_Data = 1 */
AnnaBridge 189:f392fc9709a3 275
AnnaBridge 189:f392fc9709a3 276 uint8_t type; /*!< Endpoint type
AnnaBridge 189:f392fc9709a3 277 This parameter can be any value of @ref USB_EP_Type */
AnnaBridge 189:f392fc9709a3 278
AnnaBridge 189:f392fc9709a3 279 uint16_t pmaadress; /*!< PMA Address
AnnaBridge 189:f392fc9709a3 280 This parameter can be any value between Min_addr = 0 and Max_addr = 1K */
AnnaBridge 189:f392fc9709a3 281
AnnaBridge 189:f392fc9709a3 282 uint16_t pmaaddr0; /*!< PMA Address0
AnnaBridge 189:f392fc9709a3 283 This parameter can be any value between Min_addr = 0 and Max_addr = 1K */
AnnaBridge 189:f392fc9709a3 284
AnnaBridge 189:f392fc9709a3 285 uint16_t pmaaddr1; /*!< PMA Address1
AnnaBridge 189:f392fc9709a3 286 This parameter can be any value between Min_addr = 0 and Max_addr = 1K */
AnnaBridge 189:f392fc9709a3 287
AnnaBridge 189:f392fc9709a3 288 uint8_t doublebuffer; /*!< Double buffer enable
AnnaBridge 189:f392fc9709a3 289 This parameter can be 0 or 1 */
AnnaBridge 189:f392fc9709a3 290
AnnaBridge 189:f392fc9709a3 291 uint16_t tx_fifo_num; /*!< This parameter is not required by USB Device FS peripheral, it is used
AnnaBridge 189:f392fc9709a3 292 only by USB OTG FS peripheral
AnnaBridge 189:f392fc9709a3 293 This parameter is added to ensure compatibility across USB peripherals */
AnnaBridge 189:f392fc9709a3 294
AnnaBridge 189:f392fc9709a3 295 uint32_t maxpacket; /*!< Endpoint Max packet size
AnnaBridge 189:f392fc9709a3 296 This parameter must be a number between Min_Data = 0 and Max_Data = 64KB */
AnnaBridge 189:f392fc9709a3 297
AnnaBridge 189:f392fc9709a3 298 uint8_t *xfer_buff; /*!< Pointer to transfer buffer */
AnnaBridge 189:f392fc9709a3 299
AnnaBridge 189:f392fc9709a3 300 uint32_t xfer_len; /*!< Current transfer length */
AnnaBridge 189:f392fc9709a3 301
AnnaBridge 189:f392fc9709a3 302 uint32_t xfer_count; /*!< Partial transfer length in case of multi packet transfer */
AnnaBridge 189:f392fc9709a3 303
AnnaBridge 189:f392fc9709a3 304 } USB_EPTypeDef;
AnnaBridge 189:f392fc9709a3 305 #endif /* USB */
AnnaBridge 189:f392fc9709a3 306
AnnaBridge 189:f392fc9709a3 307 /* Exported constants --------------------------------------------------------*/
AnnaBridge 189:f392fc9709a3 308
AnnaBridge 189:f392fc9709a3 309 /** @defgroup PCD_Exported_Constants PCD Exported Constants
AnnaBridge 189:f392fc9709a3 310 * @{
AnnaBridge 189:f392fc9709a3 311 */
AnnaBridge 189:f392fc9709a3 312 #if defined (USB_OTG_FS)
AnnaBridge 189:f392fc9709a3 313 /** @defgroup USB_Core_Mode_ USB Core Mode
AnnaBridge 189:f392fc9709a3 314 * @{
AnnaBridge 189:f392fc9709a3 315 */
AnnaBridge 189:f392fc9709a3 316 #define USB_OTG_MODE_DEVICE 0
AnnaBridge 189:f392fc9709a3 317 #define USB_OTG_MODE_HOST 1
AnnaBridge 189:f392fc9709a3 318 #define USB_OTG_MODE_DRD 2
AnnaBridge 189:f392fc9709a3 319 /**
AnnaBridge 189:f392fc9709a3 320 * @}
AnnaBridge 189:f392fc9709a3 321 */
AnnaBridge 189:f392fc9709a3 322
AnnaBridge 189:f392fc9709a3 323 /** @defgroup USB_Core_Speed_ USB Core Speed
AnnaBridge 189:f392fc9709a3 324 * @{
AnnaBridge 189:f392fc9709a3 325 */
AnnaBridge 189:f392fc9709a3 326 #define USB_OTG_SPEED_HIGH 0
AnnaBridge 189:f392fc9709a3 327 #define USB_OTG_SPEED_HIGH_IN_FULL 1
AnnaBridge 189:f392fc9709a3 328 #define USB_OTG_SPEED_LOW 2
AnnaBridge 189:f392fc9709a3 329 #define USB_OTG_SPEED_FULL 3
AnnaBridge 189:f392fc9709a3 330 /**
AnnaBridge 189:f392fc9709a3 331 * @}
AnnaBridge 189:f392fc9709a3 332 */
AnnaBridge 189:f392fc9709a3 333
AnnaBridge 189:f392fc9709a3 334 /** @defgroup USB_Core_PHY_ USB Core PHY
AnnaBridge 189:f392fc9709a3 335 * @{
AnnaBridge 189:f392fc9709a3 336 */
AnnaBridge 189:f392fc9709a3 337 #define USB_OTG_EMBEDDED_PHY 1
AnnaBridge 189:f392fc9709a3 338 /**
AnnaBridge 189:f392fc9709a3 339 * @}
AnnaBridge 189:f392fc9709a3 340 */
AnnaBridge 189:f392fc9709a3 341
AnnaBridge 189:f392fc9709a3 342 /** @defgroup USB_Core_MPS_ USB Core MPS
AnnaBridge 189:f392fc9709a3 343 * @{
AnnaBridge 189:f392fc9709a3 344 */
AnnaBridge 189:f392fc9709a3 345 #define USB_OTG_FS_MAX_PACKET_SIZE 64
AnnaBridge 189:f392fc9709a3 346 #define USB_OTG_MAX_EP0_SIZE 64
AnnaBridge 189:f392fc9709a3 347 /**
AnnaBridge 189:f392fc9709a3 348 * @}
AnnaBridge 189:f392fc9709a3 349 */
AnnaBridge 189:f392fc9709a3 350
AnnaBridge 189:f392fc9709a3 351 /** @defgroup USB_Core_Phy_Frequency_ USB Core Phy Frequency
AnnaBridge 189:f392fc9709a3 352 * @{
AnnaBridge 189:f392fc9709a3 353 */
AnnaBridge 189:f392fc9709a3 354 #define DSTS_ENUMSPD_HS_PHY_30MHZ_OR_60MHZ (0 << 1)
AnnaBridge 189:f392fc9709a3 355 #define DSTS_ENUMSPD_FS_PHY_30MHZ_OR_60MHZ (1 << 1)
AnnaBridge 189:f392fc9709a3 356 #define DSTS_ENUMSPD_LS_PHY_6MHZ (2 << 1)
AnnaBridge 189:f392fc9709a3 357 #define DSTS_ENUMSPD_FS_PHY_48MHZ (3 << 1)
AnnaBridge 189:f392fc9709a3 358 /**
AnnaBridge 189:f392fc9709a3 359 * @}
AnnaBridge 189:f392fc9709a3 360 */
AnnaBridge 189:f392fc9709a3 361
AnnaBridge 189:f392fc9709a3 362 /** @defgroup USB_CORE_Frame_Interval_ USB CORE Frame Interval
AnnaBridge 189:f392fc9709a3 363 * @{
AnnaBridge 189:f392fc9709a3 364 */
AnnaBridge 189:f392fc9709a3 365 #define DCFG_FRAME_INTERVAL_80 0
AnnaBridge 189:f392fc9709a3 366 #define DCFG_FRAME_INTERVAL_85 1
AnnaBridge 189:f392fc9709a3 367 #define DCFG_FRAME_INTERVAL_90 2
AnnaBridge 189:f392fc9709a3 368 #define DCFG_FRAME_INTERVAL_95 3
AnnaBridge 189:f392fc9709a3 369 /**
AnnaBridge 189:f392fc9709a3 370 * @}
AnnaBridge 189:f392fc9709a3 371 */
AnnaBridge 189:f392fc9709a3 372
AnnaBridge 189:f392fc9709a3 373 /** @defgroup USB_EP0_MPS_ USB EP0 MPS
AnnaBridge 189:f392fc9709a3 374 * @{
AnnaBridge 189:f392fc9709a3 375 */
AnnaBridge 189:f392fc9709a3 376 #define DEP0CTL_MPS_64 0
AnnaBridge 189:f392fc9709a3 377 #define DEP0CTL_MPS_32 1
AnnaBridge 189:f392fc9709a3 378 #define DEP0CTL_MPS_16 2
AnnaBridge 189:f392fc9709a3 379 #define DEP0CTL_MPS_8 3
AnnaBridge 189:f392fc9709a3 380 /**
AnnaBridge 189:f392fc9709a3 381 * @}
AnnaBridge 189:f392fc9709a3 382 */
AnnaBridge 189:f392fc9709a3 383
AnnaBridge 189:f392fc9709a3 384 /** @defgroup USB_EP_Speed_ USB EP Speed
AnnaBridge 189:f392fc9709a3 385 * @{
AnnaBridge 189:f392fc9709a3 386 */
AnnaBridge 189:f392fc9709a3 387 #define EP_SPEED_LOW 0
AnnaBridge 189:f392fc9709a3 388 #define EP_SPEED_FULL 1
AnnaBridge 189:f392fc9709a3 389 #define EP_SPEED_HIGH 2
AnnaBridge 189:f392fc9709a3 390 /**
AnnaBridge 189:f392fc9709a3 391 * @}
AnnaBridge 189:f392fc9709a3 392 */
AnnaBridge 189:f392fc9709a3 393
AnnaBridge 189:f392fc9709a3 394 /** @defgroup USB_EP_Type_ USB EP Type
AnnaBridge 189:f392fc9709a3 395 * @{
AnnaBridge 189:f392fc9709a3 396 */
AnnaBridge 189:f392fc9709a3 397 #define EP_TYPE_CTRL 0
AnnaBridge 189:f392fc9709a3 398 #define EP_TYPE_ISOC 1
AnnaBridge 189:f392fc9709a3 399 #define EP_TYPE_BULK 2
AnnaBridge 189:f392fc9709a3 400 #define EP_TYPE_INTR 3
AnnaBridge 189:f392fc9709a3 401 #define EP_TYPE_MSK 3
AnnaBridge 189:f392fc9709a3 402 /**
AnnaBridge 189:f392fc9709a3 403 * @}
AnnaBridge 189:f392fc9709a3 404 */
AnnaBridge 189:f392fc9709a3 405
AnnaBridge 189:f392fc9709a3 406 /** @defgroup USB_STS_Defines_ USB STS Defines
AnnaBridge 189:f392fc9709a3 407 * @{
AnnaBridge 189:f392fc9709a3 408 */
AnnaBridge 189:f392fc9709a3 409 #define STS_GOUT_NAK 1
AnnaBridge 189:f392fc9709a3 410 #define STS_DATA_UPDT 2
AnnaBridge 189:f392fc9709a3 411 #define STS_XFER_COMP 3
AnnaBridge 189:f392fc9709a3 412 #define STS_SETUP_COMP 4
AnnaBridge 189:f392fc9709a3 413 #define STS_SETUP_UPDT 6
AnnaBridge 189:f392fc9709a3 414 /**
AnnaBridge 189:f392fc9709a3 415 * @}
AnnaBridge 189:f392fc9709a3 416 */
AnnaBridge 189:f392fc9709a3 417
AnnaBridge 189:f392fc9709a3 418 /** @defgroup HCFG_SPEED_Defines_ HCFG SPEED Defines
AnnaBridge 189:f392fc9709a3 419 * @{
AnnaBridge 189:f392fc9709a3 420 */
AnnaBridge 189:f392fc9709a3 421 #define HCFG_30_60_MHZ 0
AnnaBridge 189:f392fc9709a3 422 #define HCFG_48_MHZ 1
AnnaBridge 189:f392fc9709a3 423 #define HCFG_6_MHZ 2
AnnaBridge 189:f392fc9709a3 424 /**
AnnaBridge 189:f392fc9709a3 425 * @}
AnnaBridge 189:f392fc9709a3 426 */
AnnaBridge 189:f392fc9709a3 427
AnnaBridge 189:f392fc9709a3 428 /** @defgroup HPRT0_PRTSPD_SPEED_Defines_ HPRT0 PRTSPD SPEED Defines
AnnaBridge 189:f392fc9709a3 429 * @{
AnnaBridge 189:f392fc9709a3 430 */
AnnaBridge 189:f392fc9709a3 431 #define HPRT0_PRTSPD_HIGH_SPEED 0
AnnaBridge 189:f392fc9709a3 432 #define HPRT0_PRTSPD_FULL_SPEED 1
AnnaBridge 189:f392fc9709a3 433 #define HPRT0_PRTSPD_LOW_SPEED 2
AnnaBridge 189:f392fc9709a3 434 /**
AnnaBridge 189:f392fc9709a3 435 * @}
AnnaBridge 189:f392fc9709a3 436 */
AnnaBridge 189:f392fc9709a3 437
AnnaBridge 189:f392fc9709a3 438 #define HCCHAR_CTRL 0
AnnaBridge 189:f392fc9709a3 439 #define HCCHAR_ISOC 1
AnnaBridge 189:f392fc9709a3 440 #define HCCHAR_BULK 2
AnnaBridge 189:f392fc9709a3 441 #define HCCHAR_INTR 3
AnnaBridge 189:f392fc9709a3 442
AnnaBridge 189:f392fc9709a3 443 #define HC_PID_DATA0 0
AnnaBridge 189:f392fc9709a3 444 #define HC_PID_DATA2 1
AnnaBridge 189:f392fc9709a3 445 #define HC_PID_DATA1 2
AnnaBridge 189:f392fc9709a3 446 #define HC_PID_SETUP 3
AnnaBridge 189:f392fc9709a3 447
AnnaBridge 189:f392fc9709a3 448 #define GRXSTS_PKTSTS_IN 2
AnnaBridge 189:f392fc9709a3 449 #define GRXSTS_PKTSTS_IN_XFER_COMP 3
AnnaBridge 189:f392fc9709a3 450 #define GRXSTS_PKTSTS_DATA_TOGGLE_ERR 5
AnnaBridge 189:f392fc9709a3 451 #define GRXSTS_PKTSTS_CH_HALTED 7
AnnaBridge 189:f392fc9709a3 452
AnnaBridge 189:f392fc9709a3 453 #define USBx_PCGCCTL *(__IO uint32_t *)((uint32_t)USBx + USB_OTG_PCGCCTL_BASE)
AnnaBridge 189:f392fc9709a3 454 #define USBx_HPRT0 *(__IO uint32_t *)((uint32_t)USBx + USB_OTG_HOST_PORT_BASE)
AnnaBridge 189:f392fc9709a3 455
AnnaBridge 189:f392fc9709a3 456 #define USBx_DEVICE ((USB_OTG_DeviceTypeDef *)((uint32_t )USBx + USB_OTG_DEVICE_BASE))
AnnaBridge 189:f392fc9709a3 457 #define USBx_INEP(i) ((USB_OTG_INEndpointTypeDef *)((uint32_t)USBx + USB_OTG_IN_ENDPOINT_BASE + (i)*USB_OTG_EP_REG_SIZE))
AnnaBridge 189:f392fc9709a3 458 #define USBx_OUTEP(i) ((USB_OTG_OUTEndpointTypeDef *)((uint32_t)USBx + USB_OTG_OUT_ENDPOINT_BASE + (i)*USB_OTG_EP_REG_SIZE))
AnnaBridge 189:f392fc9709a3 459 #define USBx_DFIFO(i) *(__IO uint32_t *)((uint32_t)USBx + USB_OTG_FIFO_BASE + (i) * USB_OTG_FIFO_SIZE)
AnnaBridge 189:f392fc9709a3 460
AnnaBridge 189:f392fc9709a3 461 #define USBx_HOST ((USB_OTG_HostTypeDef *)((uint32_t )USBx + USB_OTG_HOST_BASE))
AnnaBridge 189:f392fc9709a3 462 #define USBx_HC(i) ((USB_OTG_HostChannelTypeDef *)((uint32_t)USBx + USB_OTG_HOST_CHANNEL_BASE + (i)*USB_OTG_HOST_CHANNEL_SIZE))
AnnaBridge 189:f392fc9709a3 463
AnnaBridge 189:f392fc9709a3 464 #endif /* USB_OTG_FS */
AnnaBridge 189:f392fc9709a3 465
AnnaBridge 189:f392fc9709a3 466 #if defined (USB)
AnnaBridge 189:f392fc9709a3 467 /** @defgroup USB_LL_EP0_MPS USB Low Layer EP0 MPS
AnnaBridge 189:f392fc9709a3 468 * @{
AnnaBridge 189:f392fc9709a3 469 */
AnnaBridge 189:f392fc9709a3 470 #define DEP0CTL_MPS_64 0
AnnaBridge 189:f392fc9709a3 471 #define DEP0CTL_MPS_32 1
AnnaBridge 189:f392fc9709a3 472 #define DEP0CTL_MPS_16 2
AnnaBridge 189:f392fc9709a3 473 #define DEP0CTL_MPS_8 3
AnnaBridge 189:f392fc9709a3 474 /**
AnnaBridge 189:f392fc9709a3 475 * @}
AnnaBridge 189:f392fc9709a3 476 */
AnnaBridge 189:f392fc9709a3 477
AnnaBridge 189:f392fc9709a3 478 /** @defgroup USB_LL_EP_Type USB Low Layer EP Type
AnnaBridge 189:f392fc9709a3 479 * @{
AnnaBridge 189:f392fc9709a3 480 */
AnnaBridge 189:f392fc9709a3 481 #define EP_TYPE_CTRL 0
AnnaBridge 189:f392fc9709a3 482 #define EP_TYPE_ISOC 1
AnnaBridge 189:f392fc9709a3 483 #define EP_TYPE_BULK 2
AnnaBridge 189:f392fc9709a3 484 #define EP_TYPE_INTR 3
AnnaBridge 189:f392fc9709a3 485 #define EP_TYPE_MSK 3
AnnaBridge 189:f392fc9709a3 486 /**
AnnaBridge 189:f392fc9709a3 487 * @}
AnnaBridge 189:f392fc9709a3 488 */
AnnaBridge 189:f392fc9709a3 489
AnnaBridge 189:f392fc9709a3 490 #define BTABLE_ADDRESS (0x000)
AnnaBridge 189:f392fc9709a3 491 #endif /* USB */
AnnaBridge 189:f392fc9709a3 492
AnnaBridge 189:f392fc9709a3 493 /**
AnnaBridge 189:f392fc9709a3 494 * @}
AnnaBridge 189:f392fc9709a3 495 */
AnnaBridge 189:f392fc9709a3 496
AnnaBridge 189:f392fc9709a3 497 /* Exported macro ------------------------------------------------------------*/
AnnaBridge 189:f392fc9709a3 498 #if defined (USB_OTG_FS)
AnnaBridge 189:f392fc9709a3 499 #define USB_MASK_INTERRUPT(__INSTANCE__, __INTERRUPT__) ((__INSTANCE__)->GINTMSK &= ~(__INTERRUPT__))
AnnaBridge 189:f392fc9709a3 500 #define USB_UNMASK_INTERRUPT(__INSTANCE__, __INTERRUPT__) ((__INSTANCE__)->GINTMSK |= (__INTERRUPT__))
AnnaBridge 189:f392fc9709a3 501
AnnaBridge 189:f392fc9709a3 502 #define CLEAR_IN_EP_INTR(__EPNUM__, __INTERRUPT__) (USBx_INEP(__EPNUM__)->DIEPINT = (__INTERRUPT__))
AnnaBridge 189:f392fc9709a3 503 #define CLEAR_OUT_EP_INTR(__EPNUM__, __INTERRUPT__) (USBx_OUTEP(__EPNUM__)->DOEPINT = (__INTERRUPT__))
AnnaBridge 189:f392fc9709a3 504 #endif /* USB_OTG_FS */
AnnaBridge 189:f392fc9709a3 505
AnnaBridge 189:f392fc9709a3 506 /* Exported functions --------------------------------------------------------*/
AnnaBridge 189:f392fc9709a3 507 #if defined (USB_OTG_FS)
AnnaBridge 189:f392fc9709a3 508 HAL_StatusTypeDef USB_CoreInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef Init);
AnnaBridge 189:f392fc9709a3 509 HAL_StatusTypeDef USB_DevInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef Init);
AnnaBridge 189:f392fc9709a3 510 HAL_StatusTypeDef USB_EnableGlobalInt(USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 189:f392fc9709a3 511 HAL_StatusTypeDef USB_DisableGlobalInt(USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 189:f392fc9709a3 512 HAL_StatusTypeDef USB_SetCurrentMode(USB_OTG_GlobalTypeDef *USBx , USB_ModeTypeDef mode);
AnnaBridge 189:f392fc9709a3 513 HAL_StatusTypeDef USB_SetDevSpeed(USB_OTG_GlobalTypeDef *USBx , uint8_t speed);
AnnaBridge 189:f392fc9709a3 514 HAL_StatusTypeDef USB_FlushRxFifo (USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 189:f392fc9709a3 515 HAL_StatusTypeDef USB_FlushTxFifo (USB_OTG_GlobalTypeDef *USBx, uint32_t num );
AnnaBridge 189:f392fc9709a3 516 HAL_StatusTypeDef USB_ActivateEndpoint(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
AnnaBridge 189:f392fc9709a3 517 HAL_StatusTypeDef USB_DeactivateEndpoint(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
AnnaBridge 189:f392fc9709a3 518 HAL_StatusTypeDef USB_ActivateDedicatedEndpoint(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
AnnaBridge 189:f392fc9709a3 519 HAL_StatusTypeDef USB_DeactivateDedicatedEndpoint(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
AnnaBridge 189:f392fc9709a3 520 HAL_StatusTypeDef USB_EPStartXfer(USB_OTG_GlobalTypeDef *USBx , USB_OTG_EPTypeDef *ep, uint8_t dma);
AnnaBridge 189:f392fc9709a3 521 HAL_StatusTypeDef USB_EP0StartXfer(USB_OTG_GlobalTypeDef *USBx , USB_OTG_EPTypeDef *ep, uint8_t dma);
AnnaBridge 189:f392fc9709a3 522 HAL_StatusTypeDef USB_WritePacket(USB_OTG_GlobalTypeDef *USBx, uint8_t *src, uint8_t ch_ep_num, uint16_t len, uint8_t dma);
AnnaBridge 189:f392fc9709a3 523 void * USB_ReadPacket(USB_OTG_GlobalTypeDef *USBx, uint8_t *dest, uint16_t len);
AnnaBridge 189:f392fc9709a3 524 HAL_StatusTypeDef USB_EPSetStall(USB_OTG_GlobalTypeDef *USBx , USB_OTG_EPTypeDef *ep);
AnnaBridge 189:f392fc9709a3 525 HAL_StatusTypeDef USB_EPClearStall(USB_OTG_GlobalTypeDef *USBx , USB_OTG_EPTypeDef *ep);
AnnaBridge 189:f392fc9709a3 526 HAL_StatusTypeDef USB_SetDevAddress (USB_OTG_GlobalTypeDef *USBx, uint8_t address);
AnnaBridge 189:f392fc9709a3 527 HAL_StatusTypeDef USB_DevConnect (USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 189:f392fc9709a3 528 HAL_StatusTypeDef USB_DevDisconnect (USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 189:f392fc9709a3 529 HAL_StatusTypeDef USB_StopDevice(USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 189:f392fc9709a3 530 HAL_StatusTypeDef USB_ActivateSetup (USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 189:f392fc9709a3 531 HAL_StatusTypeDef USB_EP0_OutStart(USB_OTG_GlobalTypeDef *USBx, uint8_t dma, uint8_t *psetup);
AnnaBridge 189:f392fc9709a3 532 uint8_t USB_GetDevSpeed(USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 189:f392fc9709a3 533 uint32_t USB_GetMode(USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 189:f392fc9709a3 534 uint32_t USB_ReadInterrupts (USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 189:f392fc9709a3 535 uint32_t USB_ReadDevAllOutEpInterrupt (USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 189:f392fc9709a3 536 uint32_t USB_ReadDevOutEPInterrupt (USB_OTG_GlobalTypeDef *USBx , uint8_t epnum);
AnnaBridge 189:f392fc9709a3 537 uint32_t USB_ReadDevAllInEpInterrupt (USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 189:f392fc9709a3 538 uint32_t USB_ReadDevInEPInterrupt (USB_OTG_GlobalTypeDef *USBx , uint8_t epnum);
AnnaBridge 189:f392fc9709a3 539 void USB_ClearInterrupts (USB_OTG_GlobalTypeDef *USBx, uint32_t interrupt);
AnnaBridge 189:f392fc9709a3 540
AnnaBridge 189:f392fc9709a3 541 HAL_StatusTypeDef USB_HostInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg);
AnnaBridge 189:f392fc9709a3 542 HAL_StatusTypeDef USB_InitFSLSPClkSel(USB_OTG_GlobalTypeDef *USBx , uint8_t freq);
AnnaBridge 189:f392fc9709a3 543 HAL_StatusTypeDef USB_ResetPort(USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 189:f392fc9709a3 544 HAL_StatusTypeDef USB_DriveVbus (USB_OTG_GlobalTypeDef *USBx, uint8_t state);
AnnaBridge 189:f392fc9709a3 545 uint32_t USB_GetHostSpeed (USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 189:f392fc9709a3 546 uint32_t USB_GetCurrentFrame (USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 189:f392fc9709a3 547 HAL_StatusTypeDef USB_HC_Init(USB_OTG_GlobalTypeDef *USBx,
AnnaBridge 189:f392fc9709a3 548 uint8_t ch_num,
AnnaBridge 189:f392fc9709a3 549 uint8_t epnum,
AnnaBridge 189:f392fc9709a3 550 uint8_t dev_address,
AnnaBridge 189:f392fc9709a3 551 uint8_t speed,
AnnaBridge 189:f392fc9709a3 552 uint8_t ep_type,
AnnaBridge 189:f392fc9709a3 553 uint16_t mps);
AnnaBridge 189:f392fc9709a3 554 HAL_StatusTypeDef USB_HC_StartXfer(USB_OTG_GlobalTypeDef *USBx, USB_OTG_HCTypeDef *hc, uint8_t dma);
AnnaBridge 189:f392fc9709a3 555 uint32_t USB_HC_ReadInterrupt (USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 189:f392fc9709a3 556 HAL_StatusTypeDef USB_HC_Halt(USB_OTG_GlobalTypeDef *USBx , uint8_t hc_num);
AnnaBridge 189:f392fc9709a3 557 HAL_StatusTypeDef USB_DoPing(USB_OTG_GlobalTypeDef *USBx , uint8_t ch_num);
AnnaBridge 189:f392fc9709a3 558 HAL_StatusTypeDef USB_StopHost(USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 189:f392fc9709a3 559 HAL_StatusTypeDef USB_ActivateRemoteWakeup(USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 189:f392fc9709a3 560 HAL_StatusTypeDef USB_DeActivateRemoteWakeup(USB_OTG_GlobalTypeDef *USBx);
AnnaBridge 189:f392fc9709a3 561 #endif /* USB_OTG_FS */
AnnaBridge 189:f392fc9709a3 562
AnnaBridge 189:f392fc9709a3 563 #if defined (USB)
AnnaBridge 189:f392fc9709a3 564 HAL_StatusTypeDef USB_CoreInit(USB_TypeDef *USBx, USB_CfgTypeDef Init);
AnnaBridge 189:f392fc9709a3 565 HAL_StatusTypeDef USB_DevInit(USB_TypeDef *USBx, USB_CfgTypeDef Init);
AnnaBridge 189:f392fc9709a3 566 HAL_StatusTypeDef USB_EnableGlobalInt(USB_TypeDef *USBx);
AnnaBridge 189:f392fc9709a3 567 HAL_StatusTypeDef USB_DisableGlobalInt(USB_TypeDef *USBx);
AnnaBridge 189:f392fc9709a3 568 HAL_StatusTypeDef USB_SetCurrentMode(USB_TypeDef *USBx , USB_ModeTypeDef mode);
AnnaBridge 189:f392fc9709a3 569 HAL_StatusTypeDef USB_SetDevSpeed(USB_TypeDef *USBx , uint8_t speed);
AnnaBridge 189:f392fc9709a3 570 HAL_StatusTypeDef USB_FlushRxFifo (USB_TypeDef *USBx);
AnnaBridge 189:f392fc9709a3 571 HAL_StatusTypeDef USB_FlushTxFifo (USB_TypeDef *USBx, uint32_t num );
AnnaBridge 189:f392fc9709a3 572 HAL_StatusTypeDef USB_ActivateEndpoint(USB_TypeDef *USBx, USB_EPTypeDef *ep);
AnnaBridge 189:f392fc9709a3 573 HAL_StatusTypeDef USB_DeactivateEndpoint(USB_TypeDef *USBx, USB_EPTypeDef *ep);
AnnaBridge 189:f392fc9709a3 574 HAL_StatusTypeDef USB_EPStartXfer(USB_TypeDef *USBx , USB_EPTypeDef *ep ,uint8_t dma);
AnnaBridge 189:f392fc9709a3 575 HAL_StatusTypeDef USB_WritePacket(USB_TypeDef *USBx, uint8_t *src, uint8_t ch_ep_num, uint16_t len);
AnnaBridge 189:f392fc9709a3 576 void * USB_ReadPacket(USB_TypeDef *USBx, uint8_t *dest, uint16_t len);
AnnaBridge 189:f392fc9709a3 577 HAL_StatusTypeDef USB_EPSetStall(USB_TypeDef *USBx , USB_EPTypeDef *ep);
AnnaBridge 189:f392fc9709a3 578 HAL_StatusTypeDef USB_EPClearStall(USB_TypeDef *USBx , USB_EPTypeDef *ep);
AnnaBridge 189:f392fc9709a3 579 HAL_StatusTypeDef USB_SetDevAddress (USB_TypeDef *USBx, uint8_t address);
AnnaBridge 189:f392fc9709a3 580 HAL_StatusTypeDef USB_DevConnect (USB_TypeDef *USBx);
AnnaBridge 189:f392fc9709a3 581 HAL_StatusTypeDef USB_DevDisconnect (USB_TypeDef *USBx);
AnnaBridge 189:f392fc9709a3 582 HAL_StatusTypeDef USB_StopDevice(USB_TypeDef *USBx);
AnnaBridge 189:f392fc9709a3 583 HAL_StatusTypeDef USB_EP0_OutStart(USB_TypeDef *USBx, uint8_t dma, uint8_t *psetup);
AnnaBridge 189:f392fc9709a3 584 uint32_t USB_ReadInterrupts (USB_TypeDef *USBx);
AnnaBridge 189:f392fc9709a3 585 uint32_t USB_ReadDevAllOutEpInterrupt (USB_TypeDef *USBx);
AnnaBridge 189:f392fc9709a3 586 uint32_t USB_ReadDevOutEPInterrupt (USB_TypeDef *USBx , uint8_t epnum);
AnnaBridge 189:f392fc9709a3 587 uint32_t USB_ReadDevAllInEpInterrupt (USB_TypeDef *USBx);
AnnaBridge 189:f392fc9709a3 588 uint32_t USB_ReadDevInEPInterrupt (USB_TypeDef *USBx , uint8_t epnum);
AnnaBridge 189:f392fc9709a3 589 void USB_ClearInterrupts (USB_TypeDef *USBx, uint32_t interrupt);
AnnaBridge 189:f392fc9709a3 590
AnnaBridge 189:f392fc9709a3 591 HAL_StatusTypeDef USB_ActivateRemoteWakeup(USB_TypeDef *USBx);
AnnaBridge 189:f392fc9709a3 592 HAL_StatusTypeDef USB_DeActivateRemoteWakeup(USB_TypeDef *USBx);
AnnaBridge 189:f392fc9709a3 593 void USB_WritePMA(USB_TypeDef *USBx, uint8_t *pbUsrBuf, uint16_t wPMABufAddr, uint16_t wNBytes);
AnnaBridge 189:f392fc9709a3 594 void USB_ReadPMA(USB_TypeDef *USBx, uint8_t *pbUsrBuf, uint16_t wPMABufAddr, uint16_t wNBytes);
AnnaBridge 189:f392fc9709a3 595 #endif /* USB */
AnnaBridge 189:f392fc9709a3 596 /**
AnnaBridge 189:f392fc9709a3 597 * @}
AnnaBridge 189:f392fc9709a3 598 */
AnnaBridge 189:f392fc9709a3 599
AnnaBridge 189:f392fc9709a3 600 /**
AnnaBridge 189:f392fc9709a3 601 * @}
AnnaBridge 189:f392fc9709a3 602 */
AnnaBridge 189:f392fc9709a3 603
AnnaBridge 189:f392fc9709a3 604 #endif /* STM32L432xx || STM32L433xx || STM32L442xx || STM32L443xx || */
AnnaBridge 189:f392fc9709a3 605 /* STM32L452xx || STM32L462xx || */
AnnaBridge 189:f392fc9709a3 606 /* STM32L475xx || STM32L476xx || STM32L485xx || STM32L486xx || */
AnnaBridge 189:f392fc9709a3 607 /* STM32L496xx || STM32L4A6xx || */
AnnaBridge 189:f392fc9709a3 608 /* STM32L4R5xx || STM32L4R7xx || STM32L4R9xx || STM32L4S5xx || STM32L4S7xx || STM32L4S9xx */
AnnaBridge 189:f392fc9709a3 609
AnnaBridge 189:f392fc9709a3 610 #ifdef __cplusplus
AnnaBridge 189:f392fc9709a3 611 }
AnnaBridge 189:f392fc9709a3 612 #endif
AnnaBridge 189:f392fc9709a3 613
AnnaBridge 189:f392fc9709a3 614
AnnaBridge 189:f392fc9709a3 615 #endif /* __STM32L4xx_LL_USB_H */
AnnaBridge 189:f392fc9709a3 616
AnnaBridge 189:f392fc9709a3 617 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/