/** * @brief USBD_CDC_Init * DeInitialize the CDC layer * @param pdev: device instance * @param cfgidx: Configuration index * @retval status */ static uint8_t USBD_CDC_DeInit (USBD_HandleTypeDef *pdev, uint8_t cfgidx) { uint8_t ret = 0; /* Open EP IN */ USBD_LL_CloseEP(pdev, CDC_IN_EP); /* Open EP OUT */ USBD_LL_CloseEP(pdev, CDC_OUT_EP); /* Open Command IN EP */ USBD_LL_CloseEP(pdev, CDC_CMD_EP); /* DeInit physical Interface components */ if(pdev->pClassData != NULL) { ((USBD_CDC_ItfTypeDef *)pdev->pUserData)->DeInit(); USBD_free(pdev->pClassData); pdev->pClassData = NULL; } return ret; }
/** * @brief USBD_HID_Init * DeInitialize the HID layer * @param pdev: device instance * @param cfgidx: Configuration index * @retval status */ static uint8_t USBD_HID_DeInit (USBD_HandleTypeDef *pdev, uint8_t cfgidx) { /* Close HID EPs */ USBD_LL_CloseEP(pdev, HID_EPIN_SIZE); /* FRee allocated memory */ if(pdev->pClassData != NULL) { USBD_free(pdev->pClassData); pdev->pClassData = NULL; } return USBD_OK; }
/** * @brief USBD_AUDIO_Init * DeInitialize the AUDIO layer * @param pdev: device instance * @param cfgidx: Configuration index * @retval status */ static uint8_t USBD_AUDIO_DeInit (USBD_HandleTypeDef *pdev, uint8_t cfgidx) { /* Open EP OUT */ USBD_LL_CloseEP(pdev, AUDIO_OUT_EP); /* DeInit physical Interface components */ if(pdev->pClassData != NULL) { ((USBD_AUDIO_ItfTypeDef *)pdev->pUserData)->DeInit(0); USBD_free(pdev->pClassData); pdev->pClassData = NULL; } return USBD_OK; }
/** * @brief USBD_CUSTOM_HID_Init * DeInitialize the CUSTOM_HID layer * @param pdev: device instance * @param cfgidx: Configuration index * @retval status */ static uint8_t USBD_CUSTOM_HID_DeInit (USBD_HandleTypeDef *pdev, uint8_t cfgidx) { /* Close CUSTOM_HID EP IN */ USBD_LL_CloseEP(pdev, CUSTOM_HID_EPIN_ADDR); /* Close CUSTOM_HID EP OUT */ USBD_LL_CloseEP(pdev, CUSTOM_HID_EPOUT_ADDR); /* FRee allocated memory */ if(pdev->pClassData != NULL) { ((USBD_CUSTOM_HID_ItfTypeDef *)pdev->pUserData)->DeInit(); USBD_free(pdev->pClassData); pdev->pClassData = NULL; } return USBD_OK; }
/** * @brief USBD_MSC_DeInit * DeInitilaize the mass storage configuration * @param pdev: device instance * @param cfgidx: configuration index * @retval status */ uint8_t USBD_MSC_DeInit (USBD_HandleTypeDef *pdev, uint8_t cfgidx) { /* Close MSC EPs */ USBD_LL_CloseEP(pdev, MSC_EPOUT_ADDR); /* Open EP IN */ USBD_LL_CloseEP(pdev, MSC_EPIN_ADDR); /* De-Init the BOT layer */ MSC_BOT_DeInit(pdev); /* Free MSC Class Resources */ if(pdev->pClassData != NULL) { USBD_free(pdev->pClassData); pdev->pClassData = NULL; } return 0; }
/** * @brief USBD_DFU_Init * DeInitialize the DFU layer * @param pdev: device instance * @param cfgidx: Configuration index * @retval status */ static uint8_t USBD_DFU_DeInit (USBD_HandleTypeDef *pdev, uint8_t cfgidx) { USBD_DFU_HandleTypeDef *hdfu; hdfu = pdev->pClassData; hdfu->wblock_num = 0; hdfu->wlength = 0; hdfu->dev_state = DFU_STATE_IDLE; hdfu->dev_status[0] = DFU_ERROR_NONE; hdfu->dev_status[4] = DFU_STATE_IDLE; /* DeInit physical Interface components */ if(pdev->pClassData != NULL) { /* De-Initialize Hardware layer */ ((USBD_DFU_MediaTypeDef *)pdev->pUserData)->DeInit(); USBD_free(pdev->pClassData); pdev->pClassData = NULL; } return USBD_OK; }