Added support for the Xevelabs USB2AX revision 3.1 board.
authorDean Camera <dean@fourwalledcubicle.com>
Sat, 15 Sep 2012 13:47:00 +0000 (13:47 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Sat, 15 Sep 2012 13:47:00 +0000 (13:47 +0000)
BuildTests/BoardDriverTest/BoardDeviceMap.cfg
LUFA/Common/BoardTypes.h
LUFA/DoxygenPages/ChangeLog.txt
LUFA/Drivers/Board/AVR8/USB2AX/Buttons.h
LUFA/Drivers/Board/AVR8/USB2AX/LEDs.h
LUFA/Drivers/Board/LEDs.h

index e031304..787d9ae 100644 (file)
@@ -72,4 +72,6 @@ BOARD_OLIMEX32U4 = AVR8 : atmega32u4 :
 BOARD_OLIMEXT32U4 = AVR8 : atmega32u4 :
 BOARD_OLIMEXISPMK2 = AVR8 : at90usb162 :
 BOARD_LEONARDO = AVR8 : atmega32u4 :
 BOARD_OLIMEXT32U4 = AVR8 : atmega32u4 :
 BOARD_OLIMEXISPMK2 = AVR8 : at90usb162 :
 BOARD_LEONARDO = AVR8 : atmega32u4 :
+BOARD_UC3A3_XPLAINED = UC3 : uc3a3256 :
+BOARD_USB2AX_V31 = AVR8 : atmega32u4 :
 #
\ No newline at end of file
 #
\ No newline at end of file
index 0ac6832..0d9d212 100644 (file)
                        /** Selects the UC3-A3 Xplained specific board drivers, including the Button and LED drivers. */
                        #define BOARD_UC3A3_XPLAINED       52
                        
                        /** Selects the UC3-A3 Xplained specific board drivers, including the Button and LED drivers. */
                        #define BOARD_UC3A3_XPLAINED       52
                        
+                       /** Selects the USB2AX version 3.1 specific board drivers, including the Button and LEDs drivers. */
+                       #define BOARD_USB2AX_V31           53
+
                        #if !defined(__DOXYGEN__)
                                #define BOARD_                 BOARD_NONE
 
                        #if !defined(__DOXYGEN__)
                                #define BOARD_                 BOARD_NONE
 
index dfc6af6..271c23d 100644 (file)
@@ -11,6 +11,7 @@
   *  - Core:
   *   - Added support for the Arduino Leonardo board
   *   - Added support for the Atmel UC3-A3 Xplained board
   *  - Core:
   *   - Added support for the Arduino Leonardo board
   *   - Added support for the Atmel UC3-A3 Xplained board
+  *   - Added support for the Xevelabs USB2AX revision 3.1 board
   *   - Added new doxygen_upgrade and doxygen_create targets to the DOXYGEN build system module
   *  - Library Applications:
   *   - Added a different device serial number when the AVRISP-MKII Clone project is in libUSB compatibility mode, so that
   *   - Added new doxygen_upgrade and doxygen_create targets to the DOXYGEN build system module
   *  - Library Applications:
   *   - Added a different device serial number when the AVRISP-MKII Clone project is in libUSB compatibility mode, so that
index cb0eecd..1976f0a 100644 (file)
@@ -29,7 +29,7 @@
 */
 
 /** \file
 */
 
 /** \file
- *  \brief Board specific Buttons driver header for the Paranoid Studio USB2AX.
+ *  \brief Board specific Buttons driver header for the Xevelabs USB2AX.
  *  \copydetails Group_Buttons_USB2AX
  *
  *  \note This file should not be included directly. It is automatically included as needed by the Buttons driver
  *  \copydetails Group_Buttons_USB2AX
  *
  *  \note This file should not be included directly. It is automatically included as needed by the Buttons driver
  */
 
 /** \ingroup Group_Buttons
  */
 
 /** \ingroup Group_Buttons
+ *  \defgroup Group_Buttons_USB2AX_V31 USB2AX_V31
+ *  \brief Board specific Button driver header for the Xevelabs USB2AX revision 3.1.
+ *
+ *  See \ref Group_Buttons_USB2AX for more details.
+ */
+/** \ingroup Group_Buttons
  *  \defgroup Group_Buttons_USB2AX_V3 USB2AX_V3
  *  \defgroup Group_Buttons_USB2AX_V3 USB2AX_V3
- *  \brief Board specific Button driver header for the Paranoid Studio USB2AX revision 3.
+ *  \brief Board specific Button driver header for the Xevelabs USB2AX revision 3.
  *
  *  See \ref Group_Buttons_USB2AX for more details.
  */
 
 /** \ingroup Group_Buttons
  *  \defgroup Group_Buttons_USB2AX USB2AX
  *
  *  See \ref Group_Buttons_USB2AX for more details.
  */
 
 /** \ingroup Group_Buttons
  *  \defgroup Group_Buttons_USB2AX USB2AX
- *  \brief Board specific Buttons driver header for the Paranoid Studio USB2AX.
+ *  \brief Board specific Buttons driver header for the Xevelabs USB2AX revisions 1 and 2.
  *
  *
- *  \note For version 3 USB2AX boards, compile with <code>BOARD = USB2AX_V3</code>.
+ *  \note For version 3 USB2AX boards, compile with <code>BOARD = USB2AX_V3</code> and for version 3.1, with <code>BOARD = USB2AX_V31</code>. 
  *
  *  Board specific Buttons driver header for the Paranoid Studio USB2AX (http://paranoidstudio.assembla.com/wiki/show/paranoidstudio/USB2AX).
  *
  *
  *  Board specific Buttons driver header for the Paranoid Studio USB2AX (http://paranoidstudio.assembla.com/wiki/show/paranoidstudio/USB2AX).
  *
index 364c88d..a0ffd97 100644 (file)
@@ -29,7 +29,7 @@
 */
 
 /** \file
 */
 
 /** \file
- *  \brief Board specific LED driver header for the Paranoid Studio USB2AX.
+ *  \brief Board specific LED driver header for the Xevelabs USB2AX.
  *  \copydetails Group_LEDs_USB2AX
  *
  *  \note This file should not be included directly. It is automatically included as needed by the LEDs driver
  *  \copydetails Group_LEDs_USB2AX
  *
  *  \note This file should not be included directly. It is automatically included as needed by the LEDs driver
  */
  
 /** \ingroup Group_LEDs
  */
  
 /** \ingroup Group_LEDs
+ *  \defgroup Group_LEDs_USB2AX_V31 USB2AX_V31
+ *  \brief Board specific LED driver header for the Xevelabs USB2AX revision 3.1.
+ *
+ *  See \ref Group_LEDs_USB2AX for more details.
+ */
+
+/** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_USB2AX_V3 USB2AX_V3
  *  \defgroup Group_LEDs_USB2AX_V3 USB2AX_V3
- *  \brief Board specific LED driver header for the Paranoid Studio USB2AX revision 3.
+ *  \brief Board specific LED driver header for the Xevelabs USB2AX revision 3.
  *
  *  See \ref Group_LEDs_USB2AX for more details.
  */
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_USB2AX USB2AX
  *
  *  See \ref Group_LEDs_USB2AX for more details.
  */
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_USB2AX USB2AX
- *  \brief Board specific LED driver header for the Paranoid Studio USB2AX.
- *
- *  \note For version 3 USB2AX boards, compile with <code>BOARD = USB2AX_V3</code>.
+ *  \brief Board specific LED driver header for the Xevelabs USB2AX revisions 1 and 2.
  *
  *
- *  Board specific LED driver header for the Paranoid Studio USB2AX (http://paranoidstudio.assembla.com/wiki/show/paranoidstudio/USB2AX).
+ *  \note For version 3 USB2AX boards, compile with <code>BOARD = USB2AX_V3</code> and for version 3.1, with <code>BOARD = USB2AX_V31</code>. 
+ *  
+ *  Board specific LED driver header for the Xevelabs USB2AX (http://paranoidstudio.assembla.com/wiki/show/paranoidstudio/USB2AX).
  *
  *  <b>USB2AX</b>:
  *  <table>
  *
  *  <b>USB2AX</b>:
  *  <table>
  *    <tr><td>LEDS_LED1</td><td>Green</td><td>General Indicator</td><td>High</td><td>PORTD.1</td></tr>
  *  </table>
  *
  *    <tr><td>LEDS_LED1</td><td>Green</td><td>General Indicator</td><td>High</td><td>PORTD.1</td></tr>
  *  </table>
  *
+ *  <b>USB2AX_V31</b>:
+ *  <table>
+ *    <tr><th>Name</th><th>Color</th><th>Info</th><th>Active Level</th><th>Port Pin</th></tr>
+ *    <tr><td>LEDS_LED1</td><td>Green</td><td>General Indicator</td><td>High</td><td>PORTD.5</td></tr>
+ *    <tr><td>LEDS_LED2</td><td>Red</td><td>General Indicator</td><td>High</td><td>PORTD.6</td></tr>
+ *  </table>
+ *
  *  @{
  */
 
  *  @{
  */
 
        /* Private Interface - For use in library only: */
        #if !defined(__DOXYGEN__)
                /* Macros: */
        /* Private Interface - For use in library only: */
        #if !defined(__DOXYGEN__)
                /* Macros: */
-                       #if (BOARD == BOARD_USB2AX)
-                               #define USB2AX_LEDS_LED1   (1 << 6)
+                       #if (BOARD == BOARD_USB2AX_V31)
+                #define USB2AX_LEDS_LED1   (1 << 5)
+                #define USB2AX_LEDS_LED2   (1 << 6)
+            #elif (BOARD == BOARD_USB2AX_V3)
+                               #define USB2AX_LEDS_LED1   (1 << 1)
+                #define USB2AX_LEDS_LED2   0
                        #else
                        #else
-                               #define USB2AX_LEDS_LED1   (1 << 1)                     
+                               #define USB2AX_LEDS_LED1   (1 << 6)
+                #define USB2AX_LEDS_LED2   0
                        #endif
        #endif
 
                        #endif
        #endif
 
                        /** LED mask for the first LED on the board. */
                        #define LEDS_LED1        USB2AX_LEDS_LED1
 
                        /** LED mask for the first LED on the board. */
                        #define LEDS_LED1        USB2AX_LEDS_LED1
 
+                       /** LED mask for the second LED on the board. */
+                       #define LEDS_LED2        USB2AX_LEDS_LED2
+
                        /** LED mask for all the LEDs on the board. */
                        /** LED mask for all the LEDs on the board. */
-                       #define LEDS_ALL_LEDS    LEDS_LED1
+                       #define LEDS_ALL_LEDS    (LEDS_LED1 | LEDS_LED2)
 
                        /** LED mask for none of the board LEDs. */
                        #define LEDS_NO_LEDS     0
 
                        /** LED mask for none of the board LEDs. */
                        #define LEDS_NO_LEDS     0
                        {
                                #if (BOARD == BOARD_USB2AX)
                                DDRC  |=  LEDS_ALL_LEDS;
                        {
                                #if (BOARD == BOARD_USB2AX)
                                DDRC  |=  LEDS_ALL_LEDS;
-                               PORTC &= ~LEDS_ALL_LEDS;                                
+                               PORTC &= ~LEDS_ALL_LEDS;
                                #else
                                DDRD  |=  LEDS_ALL_LEDS;
                                #else
                                DDRD  |=  LEDS_ALL_LEDS;
-                               PORTD &= ~LEDS_ALL_LEDS;                                
-                               #endif                          
+                               PORTD &= ~LEDS_ALL_LEDS;
+                               #endif
                        }
 
                        static inline void LEDs_Disable(void)
                        {
                                #if (BOARD == BOARD_USB2AX)
                                DDRC  &= ~LEDS_ALL_LEDS;
                        }
 
                        static inline void LEDs_Disable(void)
                        {
                                #if (BOARD == BOARD_USB2AX)
                                DDRC  &= ~LEDS_ALL_LEDS;
-                               PORTC &= ~LEDS_ALL_LEDS;                                
+                               PORTC &= ~LEDS_ALL_LEDS;
                                #else
                                DDRD  &= ~LEDS_ALL_LEDS;
                                #else
                                DDRD  &= ~LEDS_ALL_LEDS;
-                               PORTD &= ~LEDS_ALL_LEDS;                                
-                               #endif                          
+                               PORTD &= ~LEDS_ALL_LEDS;
+                               #endif
                        }
 
                        static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
                        {
                                #if (BOARD == BOARD_USB2AX)
                        }
 
                        static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
                        {
                                #if (BOARD == BOARD_USB2AX)
-                               PORTC |= LEDMask;                               
+                               PORTC |= LEDMask;
                                #else
                                PORTD |= LEDMask;
                                #endif
                                #else
                                PORTD |= LEDMask;
                                #endif
                        static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)
                        {
                                #if (BOARD == BOARD_USB2AX)
                        static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)
                        {
                                #if (BOARD == BOARD_USB2AX)
-                               PORTC = ((PORTC & ~LEDS_ALL_LEDS) | LEDMask);                           
+                               PORTC = ((PORTC & ~LEDS_ALL_LEDS) | LEDMask);
                                #else
                                PORTD = ((PORTD & ~LEDS_ALL_LEDS) | LEDMask);
                                #endif
                                #else
                                PORTD = ((PORTD & ~LEDS_ALL_LEDS) | LEDMask);
                                #endif
                                                           const uint8_t ActiveMask)
                        {
                                #if (BOARD == BOARD_USB2AX)
                                                           const uint8_t ActiveMask)
                        {
                                #if (BOARD == BOARD_USB2AX)
-                               PORTC = ((PORTC & ~LEDMask) | ActiveMask);                              
+                               PORTC = ((PORTC & ~LEDMask) | ActiveMask);
                                #else
                                PORTD = ((PORTD & ~LEDMask) | ActiveMask);
                                #endif
                                #else
                                PORTD = ((PORTD & ~LEDMask) | ActiveMask);
                                #endif
                        static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
                        {
                                #if (BOARD == BOARD_USB2AX)
                        static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
                        {
                                #if (BOARD == BOARD_USB2AX)
-                               PINC  = LEDMask;                                
+                               PINC  = LEDMask;
                                #else
                                PIND  = LEDMask;
                                #endif
                                #else
                                PIND  = LEDMask;
                                #endif
                        static inline uint8_t LEDs_GetLEDs(void)
                        {
                                #if (BOARD == BOARD_USB2AX)
                        static inline uint8_t LEDs_GetLEDs(void)
                        {
                                #if (BOARD == BOARD_USB2AX)
-                               return (PORTC & LEDS_ALL_LEDS);                         
+                               return (PORTC & LEDS_ALL_LEDS);
                                #else
                                return (PORTD & LEDS_ALL_LEDS);
                                #endif
                                #else
                                return (PORTD & LEDS_ALL_LEDS);
                                #endif
index 6e08058..b1fbd6a 100644 (file)
                        #include "UC3/EVK1104/LEDs.h"
                #elif (BOARD == BOARD_A3BU_XPLAINED)
                        #include "XMEGA/A3BU_XPLAINED/LEDs.h"
                        #include "UC3/EVK1104/LEDs.h"
                #elif (BOARD == BOARD_A3BU_XPLAINED)
                        #include "XMEGA/A3BU_XPLAINED/LEDs.h"
-               #elif ((BOARD == BOARD_USB2AX) || (BOARD == BOARD_USB2AX_V3))
+               #elif ((BOARD == BOARD_USB2AX) || (BOARD == BOARD_USB2AX_V3) || (BOARD == BOARD_USB2AX_V31))
                        #include "AVR8/USB2AX/LEDs.h"
                #elif ((BOARD == BOARD_MICROPENDOUS_REV1) || (BOARD == BOARD_MICROPENDOUS_REV2) || \
                       (BOARD == BOARD_MICROPENDOUS_32U2))
                        #include "AVR8/USB2AX/LEDs.h"
                #elif ((BOARD == BOARD_MICROPENDOUS_REV1) || (BOARD == BOARD_MICROPENDOUS_REV2) || \
                       (BOARD == BOARD_MICROPENDOUS_32U2))