summaryrefslogtreecommitdiff
path: root/firmware/usbstack/usb_core.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/usbstack/usb_core.c')
-rw-r--r--firmware/usbstack/usb_core.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/firmware/usbstack/usb_core.c b/firmware/usbstack/usb_core.c
index 60a88e9490..218b297455 100644
--- a/firmware/usbstack/usb_core.c
+++ b/firmware/usbstack/usb_core.c
@@ -286,7 +286,8 @@ static bool initialized = false;
286static enum { DEFAULT, ADDRESS, CONFIGURED } usb_state; 286static enum { DEFAULT, ADDRESS, CONFIGURED } usb_state;
287 287
288static bool usb_core_storage_enabled = false; 288static bool usb_core_storage_enabled = false;
289static bool usb_core_serial_enabled = false; 289/* Next one is non-static, to enable setting it from the debug menu */
290bool usb_core_serial_enabled = false;
290static bool usb_core_charging_enabled = false; 291static bool usb_core_charging_enabled = false;
291#if defined(USB_BENCHMARK) 292#if defined(USB_BENCHMARK)
292static bool usb_core_benchmark_enabled = false; 293static bool usb_core_benchmark_enabled = false;
@@ -405,6 +406,11 @@ void usb_core_init(void)
405 406
406void usb_core_exit(void) 407void usb_core_exit(void)
407{ 408{
409#ifdef USB_SERIAL
410 if(usb_core_serial_enabled)
411 usb_serial_exit();
412#endif
413
408 if (initialized) { 414 if (initialized) {
409 usb_drv_exit(); 415 usb_drv_exit();
410 } 416 }
@@ -444,15 +450,21 @@ void usb_core_handle_transfer_completion(struct usb_transfer_completion_event_da
444void usb_core_enable_protocol(int driver,bool enabled) 450void usb_core_enable_protocol(int driver,bool enabled)
445{ 451{
446 switch(driver) { 452 switch(driver) {
453#ifdef USB_STORAGE
447 case USB_DRIVER_MASS_STORAGE: 454 case USB_DRIVER_MASS_STORAGE:
448 usb_core_storage_enabled = enabled; 455 usb_core_storage_enabled = enabled;
449 break; 456 break;
457#endif
458#ifdef USB_SERIAL
450 case USB_DRIVER_SERIAL: 459 case USB_DRIVER_SERIAL:
451 usb_core_serial_enabled = enabled; 460 usb_core_serial_enabled = enabled;
452 break; 461 break;
462#endif
463#ifdef USB_CHARGING_ONLY
453 case USB_DRIVER_CHARGING_ONLY: 464 case USB_DRIVER_CHARGING_ONLY:
454 usb_core_charging_enabled = enabled; 465 usb_core_charging_enabled = enabled;
455 break; 466 break;
467#endif
456 } 468 }
457} 469}
458 470