From: Dean Camera Date: Sun, 12 Aug 2012 13:46:24 +0000 (+0000) Subject: Added workaround for broken VBUS detection on AVR8 devices when a bootloader starts... X-Git-Tag: LUFA-130303~89 X-Git-Url: http://git.linex4red.de/pub/USBasp.git/commitdiff_plain/ffbb30e0f86a774e6bfd866db36254fc7c8926d8?ds=sidebyside Added workaround for broken VBUS detection on AVR8 devices when a bootloader starts the application via a software jump without first turning off the OTG pad (thanks to Simon Inns) --- diff --git a/LUFA/DoxygenPages/ChangeLog.txt b/LUFA/DoxygenPages/ChangeLog.txt index ed0e9e8df..4f361c5f7 100644 --- a/LUFA/DoxygenPages/ChangeLog.txt +++ b/LUFA/DoxygenPages/ChangeLog.txt @@ -15,7 +15,8 @@ * * Changed: * - Core: - * - None + * - Added workaround for broken VBUS detection on AVR8 devices when a bootloader starts the application + * via a software jump without first turning off the OTG pad (thanks to Simon Inns) * - Library Applications: * - None * diff --git a/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c b/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c index 1f37dfd49..8285f7e92 100644 --- a/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c +++ b/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c @@ -63,6 +63,13 @@ void USB_Init( USB_Options = Options; #endif + #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) + /* Workaround for AVR8 bootloaders that fail to turn off the OTG pad before running + * the loaded application. This causes VBUS detection to fail unless we first force + * it off to reset it. */ + USB_OTGPAD_Off(); + #endif + if (!(USB_Options & USB_OPT_REG_DISABLED)) USB_REG_On(); else