X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=ao_usb.c;h=1868ec3cea8355fd1de3e4e09f3e0cb987e86d6a;hb=38a0b61b0a0b3c00f064c8d562950a17a6ddff4a;hp=c1520d750fc7e7c13c8790636f4da7e596df957e;hpb=43c8f7012102cdb591ace899420c10e4a78385ad;p=fw%2Faltos diff --git a/ao_usb.c b/ao_usb.c index c1520d75..1868ec3c 100644 --- a/ao_usb.c +++ b/ao_usb.c @@ -514,7 +514,7 @@ ao_usb_getchar(void) __critical } void -ao_usb_init(void) +ao_usb_enable(void) { /* Turn on the USB controller */ SLEEP |= SLEEP_USB_EN; @@ -537,6 +537,30 @@ ao_usb_init(void) USBCIF = 0; USBOIF = 0; USBIIF = 0; +} + +void +ao_usb_disable(void) +{ + /* Disable USB interrupts */ + USBIIE = 0; + USBOIE = 0; + USBCIE = 0; + IEN2 &= ~IEN2_USBIE; + /* Clear any pending interrupts */ + USBCIF = 0; + USBOIF = 0; + USBIIF = 0; + + /* Turn off the USB controller */ + SLEEP &= ~SLEEP_USB_EN; +} + +void +ao_usb_init(void) +{ + ao_usb_enable(); + ao_add_task(&ao_usb_task, ao_usb_ep0, "usb"); }