diff options
Diffstat (limited to 'LUFA/Drivers/USB/Core/UC3B/USBController_UC3B.c')
-rw-r--r-- | LUFA/Drivers/USB/Core/UC3B/USBController_UC3B.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/LUFA/Drivers/USB/Core/UC3B/USBController_UC3B.c b/LUFA/Drivers/USB/Core/UC3B/USBController_UC3B.c index 88dbcdaeb..ee25de755 100644 --- a/LUFA/Drivers/USB/Core/UC3B/USBController_UC3B.c +++ b/LUFA/Drivers/USB/Core/UC3B/USBController_UC3B.c @@ -92,6 +92,8 @@ void USB_Disable(void) USB_CurrentMode = USB_MODE_None;
#endif
+ AVR32_PM.GCCTRL[3].cen = false;
+
USB_IsInitialized = false;
}
@@ -105,6 +107,12 @@ void USB_ResetInterface(void) USB_INT_ClearAllInterrupts();
USB_Controller_Reset();
+
+ AVR32_PM.GCCTRL[USB_GCLK_USBB_INDEX].pllsel = !(USB_Options & USB_OPT_GCLK_SRC_OSC);
+ AVR32_PM.GCCTRL[USB_GCLK_USBB_INDEX].oscsel = !(USB_Options & USB_OPT_GCLK_CHANNEL_0);
+ AVR32_PM.GCCTRL[USB_GCLK_USBB_INDEX].diven = (F_CLOCK != 48000000UL);
+ AVR32_PM.GCCTRL[USB_GCLK_USBB_INDEX].div = ((F_CLOCK / 2) / 48000000UL);
+ AVR32_PM.GCCTRL[USB_GCLK_USBB_INDEX].cen = true;
#if defined(USB_CAN_BE_BOTH)
if (UIDModeSelectEnabled)
|