From: Dean Camera Date: Fri, 20 Dec 2013 09:11:45 +0000 (-0800) Subject: Merge pull request #16 from hansmi/master X-Git-Tag: LUFA-140302~31 X-Git-Url: http://git.linex4red.de/pub/lufa.git/commitdiff_plain/9965b2ca0a32b06b578f009396aa6071c92ebd88?hp=70a726b5aa6fb5a87193df1a780050d51110e6cb Merge pull request #16 from hansmi/master AVR8: Add option to keep 3.3V regulator enabled. --- diff --git a/LUFA/DoxygenPages/ChangeLog.txt b/LUFA/DoxygenPages/ChangeLog.txt index 55150f4d4..75a1c6c6a 100644 --- a/LUFA/DoxygenPages/ChangeLog.txt +++ b/LUFA/DoxygenPages/ChangeLog.txt @@ -11,6 +11,7 @@ * - Library Applications: * - Added new Bulk Vendor low level device demo * - Added new libUSB host Python and NodeJS application examples for the class driver GenericHID demo (thanks to Laszlo Monda) + * - Added new AVR8 USB option to keep 3.3V regulator enabled * * Changed: * - Library Applications: diff --git a/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c b/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c index 8faec1df0..dc96c0fe7 100644 --- a/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c +++ b/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c @@ -112,7 +112,8 @@ void USB_Disable(void) if (!(USB_Options & USB_OPT_MANUAL_PLL)) USB_PLL_Off(); - USB_REG_Off(); + if (!(USB_Options & USB_OPT_REG_KEEP_ENABLED)) + USB_REG_Off(); #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) USB_OTGPAD_Off(); diff --git a/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h b/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h index 1b72bf13b..fedc04ec1 100644 --- a/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h +++ b/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h @@ -133,6 +133,14 @@ */ #define USB_OPT_REG_ENABLED (0 << 1) + /** Option mask for \ref USB_Init() to keep regulator enabled at all times. Indicates that \ref USB_Disable() + * should not disable the regulator as it would otherwise. Has no effect if regulator is disabled using + * \ref USB_OPT_REG_DISABLED. + * + * \note See USB AVR data sheet for more information on the internal pad regulator. + */ + #define USB_OPT_REG_KEEP_ENABLED (1 << 3) + /** Manual PLL control option mask for \ref USB_Init(). This indicates to the library that the user application * will take full responsibility for controlling the AVR's PLL (used to generate the high frequency clock * that the USB controller requires) and ensuring that it is locked at the correct frequency for USB operations.