summaryrefslogtreecommitdiff
path: root/components/drivers/usb/usbdevice
diff options
context:
space:
mode:
Diffstat (limited to 'components/drivers/usb/usbdevice')
-rw-r--r--components/drivers/usb/usbdevice/class/cdc_vcom.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/components/drivers/usb/usbdevice/class/cdc_vcom.c b/components/drivers/usb/usbdevice/class/cdc_vcom.c
index 125fb7a200..df5e03f54c 100644
--- a/components/drivers/usb/usbdevice/class/cdc_vcom.c
+++ b/components/drivers/usb/usbdevice/class/cdc_vcom.c
@@ -670,6 +670,12 @@ static rt_err_t _vcom_configure(struct rt_serial_device *serial,
static rt_err_t _vcom_control(struct rt_serial_device *serial,
int cmd, void *arg)
{
+ struct ufunction *func;
+ struct vcom *data;
+
+ func = (struct ufunction*)serial->parent.user_data;
+ data = (struct vcom*)func->user_data;
+
switch (cmd)
{
case RT_DEVICE_CTRL_CLR_INT:
@@ -678,6 +684,9 @@ static rt_err_t _vcom_control(struct rt_serial_device *serial,
case RT_DEVICE_CTRL_SET_INT:
/* enable rx irq */
break;
+ case RT_USBD_CLASS_CTRL_CONNECTED:
+ (*(rt_bool_t*)arg) = data->connected;
+ break;
}
return RT_EOK;