Added INVERTED_VBUS_ENABLE_LINE and NO_AUTO_VBUS_MANAGEMENT compile time options (thanks to Opendous Inc.).

This commit is contained in:
Dean Camera 2012-02-05 15:19:01 +00:00
parent 252bd7bb2c
commit a677254026
7 changed files with 41 additions and 0 deletions

View file

@ -79,6 +79,11 @@ void USB_Host_ProcessNextHostState(void)
USB_OTGPAD_On();
USB_Host_VBUS_Auto_Enable();
USB_Host_VBUS_Auto_On();
#if defined(NO_AUTO_VBUS_MANAGEMENT)
USB_Host_VBUS_Manual_Enable();
USB_Host_VBUS_Manual_On();
#endif
USB_HostState = HOST_STATE_Powered_WaitForConnect;
}

View file

@ -64,6 +64,10 @@
#error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
#endif
#if defined(INVERTED_VBUS_ENABLE_LINE) && !defined(NO_AUTO_VBUS_MANAGEMENT)
#error The INVERTED_VBUS_ENABLE_LINE compile option requires NO_AUTO_VBUS_MANAGEMENT for the AVR8 architecture.
#endif
/* Public Interface - May be used in end-application: */
/* Macros: */
/** Indicates the fixed USB device address which any attached device is enumerated to when in
@ -310,7 +314,11 @@
static inline void USB_Host_VBUS_Manual_On(void) ATTR_ALWAYS_INLINE;
static inline void USB_Host_VBUS_Manual_On(void)
{
#if defined(INVERTED_VBUS_ENABLE_LINE)
PORTE &= ~(1 << 7);
#else
PORTE |= (1 << 7);
#endif
}
static inline void USB_Host_VBUS_Auto_Off(void) ATTR_ALWAYS_INLINE;
@ -322,7 +330,11 @@
static inline void USB_Host_VBUS_Manual_Off(void) ATTR_ALWAYS_INLINE;
static inline void USB_Host_VBUS_Manual_Off(void)
{
#if defined(INVERTED_VBUS_ENABLE_LINE)
PORTE |= (1 << 7);
#else
PORTE &= ~(1 << 7);
#endif
}
static inline void USB_Host_SetDeviceAddress(const uint8_t Address) ATTR_ALWAYS_INLINE;

View file

@ -80,6 +80,11 @@ void USB_Host_ProcessNextHostState(void)
USB_Host_VBUS_Auto_Enable();
USB_Host_VBUS_Auto_On();
#if defined(NO_AUTO_VBUS_MANAGEMENT)
USB_Host_VBUS_Manual_Enable();
USB_Host_VBUS_Manual_On();
#endif
USB_HostState = HOST_STATE_Powered_WaitForConnect;
}

View file

@ -134,6 +134,10 @@ void USB_ResetInterface(void)
}
else if (USB_CurrentMode == USB_MODE_Host)
{
#if defined(INVERTED_VBUS_ENABLE_LINE)
AVR32_USBB.USBCON.vbuspol = true;
#endif
#if defined(USB_CAN_BE_HOST)
AVR32_USBB.USBCON.uimod = false;