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.c29
1 files changed, 26 insertions, 3 deletions
diff --git a/firmware/usbstack/usb_core.c b/firmware/usbstack/usb_core.c
index e0aaa9b2f4..aa4686500d 100644
--- a/firmware/usbstack/usb_core.c
+++ b/firmware/usbstack/usb_core.c
@@ -199,7 +199,10 @@ static struct usb_class_driver drivers[USB_NUM_DRIVERS] =
199 .init = usb_storage_init, 199 .init = usb_storage_init,
200 .disconnect = NULL, 200 .disconnect = NULL,
201 .transfer_complete = usb_storage_transfer_complete, 201 .transfer_complete = usb_storage_transfer_complete,
202 .control_request = usb_storage_control_request 202 .control_request = usb_storage_control_request,
203#ifdef HAVE_HOTSWAP
204 .notify_hotswap = usb_storage_notify_hotswap,
205#endif
203 }, 206 },
204#endif 207#endif
205#ifdef USB_SERIAL 208#ifdef USB_SERIAL
@@ -213,7 +216,10 @@ static struct usb_class_driver drivers[USB_NUM_DRIVERS] =
213 .init = usb_serial_init, 216 .init = usb_serial_init,
214 .disconnect = usb_serial_disconnect, 217 .disconnect = usb_serial_disconnect,
215 .transfer_complete = usb_serial_transfer_complete, 218 .transfer_complete = usb_serial_transfer_complete,
216 .control_request = usb_serial_control_request 219 .control_request = usb_serial_control_request,
220#ifdef HAVE_HOTSWAP
221 .notify_hotswap = NULL,
222#endif
217 }, 223 },
218#endif 224#endif
219#ifdef USB_CHARGING_ONLY 225#ifdef USB_CHARGING_ONLY
@@ -227,7 +233,10 @@ static struct usb_class_driver drivers[USB_NUM_DRIVERS] =
227 .init = NULL, 233 .init = NULL,
228 .disconnect = NULL, 234 .disconnect = NULL,
229 .transfer_complete = NULL, 235 .transfer_complete = NULL,
230 .control_request = NULL 236 .control_request = NULL,
237#ifdef HAVE_HOTSWAP
238 .notify_hotswap = NULL,
239#endif
231 }, 240 },
232#endif 241#endif
233}; 242};
@@ -386,6 +395,20 @@ bool usb_core_driver_enabled(int driver)
386 return drivers[driver].enabled; 395 return drivers[driver].enabled;
387} 396}
388 397
398#ifdef HAVE_HOTSWAP
399void usb_core_hotswap_event(int volume,bool inserted)
400{
401 int i;
402 for(i=0;i<USB_NUM_DRIVERS;i++) {
403 if(drivers[i].enabled &&
404 drivers[i].notify_hotswap!=NULL)
405 {
406 drivers[i].notify_hotswap(volume,inserted);
407 }
408 }
409}
410#endif
411
389static void usb_core_set_serial_function_id(void) 412static void usb_core_set_serial_function_id(void)
390{ 413{
391 int id = 0; 414 int id = 0;