/* Provided by users. */
extern void USB_DeviceClockInit(void);
extern void USB_DeviceIsrEnable(void);
+extern void USB_DeviceIsrDisable(void);
/*******************************************************************************
* Definitions
******************************************************************************/
/* Data buffer for receiving and sending*/
static uint8_t s_currRecvBuf[DATA_BUFF_SIZE];
-volatile static uint32_t s_recvSize = 0;
-volatile static uint32_t s_sendSize = 0;
-volatile static uint8_t s_sendComplete = 0;
+static volatile uint32_t s_recvSize = 0;
+static volatile uint8_t s_sendComplete = 0;
static uint32_t s_usbBulkMaxPacketSize = FS_CDC_VCOM_BULK_OUT_PACKET_SIZE;
/*******************************************************************************
* Prototypes
}
/* See virtual_com.h for documentation of this function. */
-void USB_VcomDeinit(usb_device_handle deviceHandle)
+void
+USB_VcomDeinit (void)
{
- USB_DeviceStop(deviceHandle);
- USB_DeviceDeinit(deviceHandle);
+ if (s_cdcVcom.deviceHandle == NULL)
+ return;
+
+ USB_DeviceStop (s_cdcVcom.deviceHandle);
+ USB_DeviceDeinit (s_cdcVcom.deviceHandle);
s_cdcVcom.deviceHandle = NULL;
+ USB_DeviceIsrDisable();
+
/* XXX: We are not stopping the USBOTG clock yet. */
}