summaryrefslogtreecommitdiff
path: root/ports/stm32/usb.c
diff options
context:
space:
mode:
Diffstat (limited to 'ports/stm32/usb.c')
-rw-r--r--ports/stm32/usb.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/ports/stm32/usb.c b/ports/stm32/usb.c
index c9c22d5d2..ace090f80 100644
--- a/ports/stm32/usb.c
+++ b/ports/stm32/usb.c
@@ -309,6 +309,18 @@ STATIC mp_obj_t pyb_usb_mode(size_t n_args, const mp_obj_t *pos_args, mp_map_t *
}
mode = USBD_MODE_CDC2_MSC;
#endif
+ #if MICROPY_HW_USB_CDC_NUM >= 3
+ } else if (strcmp(mode_str, "3xVCP") == 0) {
+ if (args[2].u_int == -1) {
+ pid = USBD_PID_CDC3;
+ }
+ mode = USBD_MODE_CDC3;
+ } else if (strcmp(mode_str, "3xVCP+MSC") == 0) {
+ if (args[2].u_int == -1) {
+ pid = USBD_PID_CDC3_MSC;
+ }
+ mode = USBD_MODE_CDC3_MSC;
+ #endif
} else if (strcmp(mode_str, "CDC+HID") == 0 || strcmp(mode_str, "VCP+HID") == 0) {
if (args[2].u_int == -1) {
pid = USBD_PID_CDC_HID;
@@ -386,6 +398,9 @@ const pyb_usb_vcp_obj_t pyb_usb_vcp_obj[MICROPY_HW_USB_CDC_NUM] = {
#if MICROPY_HW_USB_CDC_NUM >= 2
{{&pyb_usb_vcp_type}, &usb_device.usbd_cdc_itf[1]},
#endif
+ #if MICROPY_HW_USB_CDC_NUM >= 3
+ {{&pyb_usb_vcp_type}, &usb_device.usbd_cdc_itf[2]},
+ #endif
};
STATIC void pyb_usb_vcp_init0(void) {