usbd_core.h
1 /** 2 ****************************************************************************** 3 * @file usbd_core.h 4 * @author MCD Application Team 5 * @brief Header file for usbd_core.c file 6 ****************************************************************************** 7 * @attention 8 * 9 * Copyright (c) 2015 STMicroelectronics. 10 * All rights reserved. 11 * 12 * This software is licensed under terms that can be found in the LICENSE file 13 * in the root directory of this software component. 14 * If no LICENSE file comes with this software, it is provided AS-IS. 15 * 16 ****************************************************************************** 17 */ 18 19 /* Define to prevent recursive inclusion -------------------------------------*/ 20 #ifndef __USBD_CORE_H 21 #define __USBD_CORE_H 22 23 #ifdef __cplusplus 24 extern "C" { 25 #endif 26 27 /* Includes ------------------------------------------------------------------*/ 28 #include "usbd_conf.h" 29 #include "usbd_def.h" 30 #include "usbd_ioreq.h" 31 #include "usbd_ctlreq.h" 32 33 /** @addtogroup STM32_USB_DEVICE_LIBRARY 34 * @{ 35 */ 36 37 /** @defgroup USBD_CORE 38 * @brief This file is the Header file for usbd_core.c file 39 * @{ 40 */ 41 42 43 /** @defgroup USBD_CORE_Exported_Defines 44 * @{ 45 */ 46 #ifndef USBD_DEBUG_LEVEL 47 #define USBD_DEBUG_LEVEL 0U 48 #endif /* USBD_DEBUG_LEVEL */ 49 /** 50 * @} 51 */ 52 53 54 /** @defgroup USBD_CORE_Exported_TypesDefinitions 55 * @{ 56 */ 57 58 59 /** 60 * @} 61 */ 62 63 64 65 /** @defgroup USBD_CORE_Exported_Macros 66 * @{ 67 */ 68 69 /** 70 * @} 71 */ 72 73 /** @defgroup USBD_CORE_Exported_Variables 74 * @{ 75 */ 76 #define USBD_SOF USBD_LL_SOF 77 /** 78 * @} 79 */ 80 81 /** @defgroup USBD_CORE_Exported_FunctionsPrototype 82 * @{ 83 */ 84 USBD_StatusTypeDef USBD_Init(USBD_HandleTypeDef *pdev, USBD_DescriptorsTypeDef *pdesc, uint8_t id); 85 USBD_StatusTypeDef USBD_DeInit(USBD_HandleTypeDef *pdev); 86 USBD_StatusTypeDef USBD_Start(USBD_HandleTypeDef *pdev); 87 USBD_StatusTypeDef USBD_Stop(USBD_HandleTypeDef *pdev); 88 USBD_StatusTypeDef USBD_RegisterClass(USBD_HandleTypeDef *pdev, USBD_ClassTypeDef *pclass); 89 #if (USBD_USER_REGISTER_CALLBACK == 1U) 90 USBD_StatusTypeDef USBD_RegisterDevStateCallback(USBD_HandleTypeDef *pdev, USBD_DevStateCallbackTypeDef pUserCallback); 91 #endif /* USBD_USER_REGISTER_CALLBACK */ 92 93 #ifdef USE_USBD_COMPOSITE 94 USBD_StatusTypeDef USBD_RegisterClassComposite(USBD_HandleTypeDef *pdev, USBD_ClassTypeDef *pclass, 95 USBD_CompositeClassTypeDef classtype, uint8_t *EpAddr); 96 97 USBD_StatusTypeDef USBD_UnRegisterClassComposite(USBD_HandleTypeDef *pdev); 98 uint8_t USBD_CoreGetEPAdd(USBD_HandleTypeDef *pdev, uint8_t ep_dir, uint8_t ep_type, uint8_t ClassId); 99 #endif /* USE_USBD_COMPOSITE */ 100 101 uint8_t USBD_CoreFindIF(USBD_HandleTypeDef *pdev, uint8_t index); 102 uint8_t USBD_CoreFindEP(USBD_HandleTypeDef *pdev, uint8_t index); 103 104 USBD_StatusTypeDef USBD_RunTestMode(USBD_HandleTypeDef *pdev); 105 USBD_StatusTypeDef USBD_SetClassConfig(USBD_HandleTypeDef *pdev, uint8_t cfgidx); 106 USBD_StatusTypeDef USBD_ClrClassConfig(USBD_HandleTypeDef *pdev, uint8_t cfgidx); 107 108 USBD_StatusTypeDef USBD_LL_SetupStage(USBD_HandleTypeDef *pdev, uint8_t *psetup); 109 USBD_StatusTypeDef USBD_LL_DataOutStage(USBD_HandleTypeDef *pdev, uint8_t epnum, uint8_t *pdata); 110 USBD_StatusTypeDef USBD_LL_DataInStage(USBD_HandleTypeDef *pdev, uint8_t epnum, uint8_t *pdata); 111 112 USBD_StatusTypeDef USBD_LL_Reset(USBD_HandleTypeDef *pdev); 113 USBD_StatusTypeDef USBD_LL_SetSpeed(USBD_HandleTypeDef *pdev, USBD_SpeedTypeDef speed); 114 USBD_StatusTypeDef USBD_LL_Suspend(USBD_HandleTypeDef *pdev); 115 USBD_StatusTypeDef USBD_LL_Resume(USBD_HandleTypeDef *pdev); 116 117 USBD_StatusTypeDef USBD_LL_SOF(USBD_HandleTypeDef *pdev); 118 USBD_StatusTypeDef USBD_LL_IsoINIncomplete(USBD_HandleTypeDef *pdev, uint8_t epnum); 119 USBD_StatusTypeDef USBD_LL_IsoOUTIncomplete(USBD_HandleTypeDef *pdev, uint8_t epnum); 120 121 USBD_StatusTypeDef USBD_LL_DevConnected(USBD_HandleTypeDef *pdev); 122 USBD_StatusTypeDef USBD_LL_DevDisconnected(USBD_HandleTypeDef *pdev); 123 124 /* USBD Low Level Driver */ 125 USBD_StatusTypeDef USBD_LL_Init(USBD_HandleTypeDef *pdev); 126 USBD_StatusTypeDef USBD_LL_DeInit(USBD_HandleTypeDef *pdev); 127 USBD_StatusTypeDef USBD_LL_Start(USBD_HandleTypeDef *pdev); 128 USBD_StatusTypeDef USBD_LL_Stop(USBD_HandleTypeDef *pdev); 129 130 USBD_StatusTypeDef USBD_LL_OpenEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr, 131 uint8_t ep_type, uint16_t ep_mps); 132 133 USBD_StatusTypeDef USBD_LL_CloseEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr); 134 USBD_StatusTypeDef USBD_LL_FlushEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr); 135 USBD_StatusTypeDef USBD_LL_StallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr); 136 USBD_StatusTypeDef USBD_LL_ClearStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr); 137 USBD_StatusTypeDef USBD_LL_SetUSBAddress(USBD_HandleTypeDef *pdev, uint8_t dev_addr); 138 139 USBD_StatusTypeDef USBD_LL_Transmit(USBD_HandleTypeDef *pdev, uint8_t ep_addr, 140 uint8_t *pbuf, uint32_t size); 141 142 USBD_StatusTypeDef USBD_LL_PrepareReceive(USBD_HandleTypeDef *pdev, uint8_t ep_addr, 143 uint8_t *pbuf, uint32_t size); 144 145 #ifdef USBD_HS_TESTMODE_ENABLE 146 USBD_StatusTypeDef USBD_LL_SetTestMode(USBD_HandleTypeDef *pdev, uint8_t testmode); 147 #endif /* USBD_HS_TESTMODE_ENABLE */ 148 149 uint8_t USBD_LL_IsStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr); 150 uint32_t USBD_LL_GetRxDataSize(USBD_HandleTypeDef *pdev, uint8_t ep_addr); 151 152 void USBD_LL_Delay(uint32_t Delay); 153 154 void *USBD_GetEpDesc(uint8_t *pConfDesc, uint8_t EpAddr); 155 USBD_DescHeaderTypeDef *USBD_GetNextDesc(uint8_t *pbuf, uint16_t *ptr); 156 157 /** 158 * @} 159 */ 160 161 #ifdef __cplusplus 162 } 163 #endif 164 165 #endif /* __USBD_CORE_H */ 166 167 /** 168 * @} 169 */ 170 171 /** 172 * @} 173 */ 174 175