Added support for version 2 of the Teensy boards (thanks to Christoph Redecker).
authorDean Camera <dean@fourwalledcubicle.com>
Wed, 23 Nov 2011 00:15:58 +0000 (00:15 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Wed, 23 Nov 2011 00:15:58 +0000 (00:15 +0000)
LUFA/Common/BoardTypes.h
LUFA/DoxygenPages/ChangeLog.txt
LUFA/DoxygenPages/DeviceSupport.txt
LUFA/Drivers/Board/AVR8/TEENSY/LEDs.h
LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h
LUFA/Drivers/Board/AVR8/XPLAIN/LEDs.h
LUFA/Drivers/Board/LEDs.h

index efd80f9..3bb9e5a 100644 (file)
@@ -96,7 +96,7 @@
                         *  such as the Joystick driver, where the removal would adversely affect the code's operation is still disallowed. */
                        #define BOARD_NONE          10
 
                         *  such as the Joystick driver, where the removal would adversely affect the code's operation is still disallowed. */
                        #define BOARD_NONE          10
 
-                       /** Selects the Teensy (all versions) specific board drivers, including the driver for the board LEDs. */
+                       /** Selects the Teensy version 1.x specific board drivers, including the driver for the board LEDs. */
                        #define BOARD_TEENSY        11
 
                        /** Selects the USBTINY MKII specific board drivers, including the Button and LEDs drivers. */
                        #define BOARD_TEENSY        11
 
                        /** Selects the USBTINY MKII specific board drivers, including the Button and LEDs drivers. */
                        /** Selects the Atmel XMEGA A3BU Xplained specific board drivers, including Dataflash, Button and LED drivers. */
                        #define BOARD_A3BU_XPLAINED 31
 
                        /** Selects the Atmel XMEGA A3BU Xplained specific board drivers, including Dataflash, Button and LED drivers. */
                        #define BOARD_A3BU_XPLAINED 31
 
+                       /** Selects the Teensy version 2.x specific board drivers, including the driver for the board LEDs. */
+                       #define BOARD_TEENSY        32
+
                        #if !defined(__DOXYGEN__)
                                #define BOARD_          BOARD_NONE
 
                        #if !defined(__DOXYGEN__)
                                #define BOARD_          BOARD_NONE
 
index 26b07df..fc84308 100644 (file)
@@ -11,6 +11,7 @@
   *  - Core:
   *   - Added support for the XMEGA A3BU Xplained board
   *   - Added support for the new B series XMEGA devices
   *  - Core:
   *   - Added support for the XMEGA A3BU Xplained board
   *   - Added support for the new B series XMEGA devices
+  *   - Added support for version 2 of the Teensy boards (thanks to Christoph Redecker).
   *  - Library Applications:
   *   - Added User Application APIs to the CDC and DFU class bootloaders
   *   - Added INVERTED_ISP_MISO compile time option to the AVRISP-MKII clone project (thanks to Chuck Rohs)
   *  - Library Applications:
   *   - Added User Application APIs to the CDC and DFU class bootloaders
   *   - Added INVERTED_ISP_MISO compile time option to the AVRISP-MKII clone project (thanks to Chuck Rohs)
index f6fee85..66de210 100644 (file)
  *   - Microsin AVR-USB162
  *   - Minimus USB
  *   - Olimex AVR-USB-162
  *   - Microsin AVR-USB162
  *   - Minimus USB
  *   - Olimex AVR-USB-162
- *   - PJRC Teensy (all revisions and versions)
+ *   - PJRC Teensy (1.x and 2.x versions)
  *   - Sparkfun U2 Breakout Board
  *   - TCNISO Blackcat USB JTAG
  *   - Tempusdictum Benito
  *   - Sparkfun U2 Breakout Board
  *   - TCNISO Blackcat USB JTAG
  *   - Tempusdictum Benito
index 0181875..c016753 100644 (file)
@@ -29,7 +29,7 @@
 */
 
 /** \file
 */
 
 /** \file
- *  \brief Board specific LED driver header for the PJRC Teensy boards.
+ *  \brief Board specific LED driver header for the PJRC Teensy 1.x/2.x boards.
  *  \copydetails Group_LEDs_TEENSY
  *
  *  \note This file should not be included directly. It is automatically included as needed by the LEDs driver
  *  \copydetails Group_LEDs_TEENSY
  *
  *  \note This file should not be included directly. It is automatically included as needed by the LEDs driver
@@ -38,7 +38,9 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_TEENSY TEENSY
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_TEENSY TEENSY
- *  \brief Board specific LED driver header for the PJRC Teensy boards.
+ *  \brief Board specific LED driver header for the PJRC Teensy 1.x/2.x boards.
+ *
+ *  \note For version 2 Teensy boards, compile with <code>BOARD = TEENSY2</code>.
  *
  *  Board specific LED driver header for the PJRC Teensy boards (http://www.pjrc.com/teensy/index.html).
  *
  *
  *  Board specific LED driver header for the PJRC Teensy boards (http://www.pjrc.com/teensy/index.html).
  *
                        static inline void LEDs_Init(void)
                        {
                                DDRD  |= LEDS_ALL_LEDS;
                        static inline void LEDs_Init(void)
                        {
                                DDRD  |= LEDS_ALL_LEDS;
-                               PORTD |= LEDS_ALL_LEDS;
+
+                               #if (BOARD == BOARD_TEENSY2)
+                               PORTD &= ~LEDS_ALL_LEDS;                                
+                               #else
+                               PORTD |=  LEDS_ALL_LEDS;
+                               #endif
                        }
 
                        static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
                        {
                        }
 
                        static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
                        {
+                               #if (BOARD == BOARD_TEENSY2)
+                               PORTD |=  LEDMask;                              
+                               #else
                                PORTD &= ~LEDMask;
                                PORTD &= ~LEDMask;
+                               #endif
                        }
 
                        static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)
                        {
                        }
 
                        static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)
                        {
-                               PORTD |= LEDMask;
+                               #if (BOARD == BOARD_TEENSY2)
+                               PORTD &= ~LEDMask;                              
+                               #else
+                               PORTD |=  LEDMask;
+                               #endif
                        }
 
                        static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)
                        {
                        }
 
                        static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)
                        {
+                               #if (BOARD == BOARD_TEENSY2)
+                               PORTD = ((PORTD & ~LEDS_ALL_LEDS) | LEDMask);
+                               #else
                                PORTD = ((PORTD | LEDS_ALL_LEDS) & ~LEDMask);
                                PORTD = ((PORTD | LEDS_ALL_LEDS) & ~LEDMask);
+                               #endif
                        }
 
                        static inline void LEDs_ChangeLEDs(const uint8_t LEDMask,
                                                           const uint8_t ActiveMask)
                        {
                        }
 
                        static inline void LEDs_ChangeLEDs(const uint8_t LEDMask,
                                                           const uint8_t ActiveMask)
                        {
+                               #if (BOARD == BOARD_TEENSY2)
+                               PORTD = ((PORTD & ~LEDMask) | ActiveMask);                              
+                               #else
                                PORTD = ((PORTD | LEDMask) & ~ActiveMask);
                                PORTD = ((PORTD | LEDMask) & ~ActiveMask);
+                               #endif
                        }
 
                        static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
                        }
 
                        static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
                        static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
                        static inline uint8_t LEDs_GetLEDs(void)
                        {
                        static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
                        static inline uint8_t LEDs_GetLEDs(void)
                        {
+                               #if (BOARD == BOARD_TEENSY2)
+                               return (PORTD & LEDS_ALL_LEDS);                         
+                               #else
                                return (~PORTD & LEDS_ALL_LEDS);
                                return (~PORTD & LEDS_ALL_LEDS);
+                               #endif
                        }
                #endif
 
                        }
                #endif
 
index 71ff72b..8b65e62 100644 (file)
@@ -29,7 +29,7 @@
 */
 
 /** \file
 */
 
 /** \file
- *  \brief Board specific Dataflash driver header for the Atmel XPLAIN.
+ *  \brief Board specific Dataflash driver header for the original Atmel XPLAIN.
  *  \copydetails Group_Dataflash_XPLAIN
  *
  *  \note This file should not be included directly. It is automatically included as needed by the dataflash driver
  *  \copydetails Group_Dataflash_XPLAIN
  *
  *  \note This file should not be included directly. It is automatically included as needed by the dataflash driver
@@ -38,7 +38,9 @@
 
 /** \ingroup Group_Dataflash
  *  \defgroup Group_Dataflash_XPLAIN XPLAIN
 
 /** \ingroup Group_Dataflash
  *  \defgroup Group_Dataflash_XPLAIN XPLAIN
- *  \brief Board specific Dataflash driver header for the Atmel XPLAIN.
+ *  \brief Board specific Dataflash driver header for the original Atmel XPLAIN.
+ *
+ *  \note For the first revision XPLAIN board, compile with <code>BOARD = BOARD_XPLAIN_REV1</code>.
  *
  *  Board specific Dataflash driver header for the Atmel XPLAIN.
  *
  *
  *  Board specific Dataflash driver header for the Atmel XPLAIN.
  *
index d00bbb6..0eb11d9 100644 (file)
@@ -29,7 +29,7 @@
 */
 
 /** \file
 */
 
 /** \file
- *  \brief Board specific LED driver header for the Atmel XPLAIN.
+ *  \brief Board specific LED driver header for the original Atmel XPLAIN.
  *  \copydetails Group_LEDs_XPLAIN
  *
  *  \note This file should not be included directly. It is automatically included as needed by the LEDs driver
  *  \copydetails Group_LEDs_XPLAIN
  *
  *  \note This file should not be included directly. It is automatically included as needed by the LEDs driver
@@ -38,7 +38,7 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_XPLAIN XPLAIN
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_XPLAIN XPLAIN
- *  \brief Board specific LED driver header for the Atmel XPLAIN.
+ *  \brief Board specific LED driver header for the original Atmel XPLAIN.
  *
  *  Board specific LED driver header for the Atmel XPLAIN.
  *
  *
  *  Board specific LED driver header for the Atmel XPLAIN.
  *
index 5ac361a..eec9991 100644 (file)
                #elif (BOARD == BOARD_EVK1104)
                        #include "UC3/EVK1104/LEDs.h"
                #elif (BOARD == BOARD_A3BU_XPLAINED)
                #elif (BOARD == BOARD_EVK1104)
                        #include "UC3/EVK1104/LEDs.h"
                #elif (BOARD == BOARD_A3BU_XPLAINED)
-                       #include "XMEGA/A3BU_XPLAINED/LEDs.h"                   
+                       #include "XMEGA/A3BU_XPLAINED/LEDs.h"
+               #elif (BOARD == BOARD_TEENSY2)
+                       #include "AVR8/TEENSY/LEDs.h"
                #else
                        #include "Board/LEDs.h"
                #endif
                #else
                        #include "Board/LEDs.h"
                #endif