aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2010-02-22 11:44:34 +0000
committerDean Camera <dean@fourwalledcubicle.com>2010-02-22 11:44:34 +0000
commitaae20139b90521cf1d1b17fdcb3ff9d42ecdf937 (patch)
treec74b83691225a38b1fac5a78d83740081c441043
parentd2851b335106293e5f95107226b5deeed712a69c (diff)
downloadlufa-aae20139b90521cf1d1b17fdcb3ff9d42ecdf937.tar.gz
lufa-aae20139b90521cf1d1b17fdcb3ff9d42ecdf937.tar.bz2
lufa-aae20139b90521cf1d1b17fdcb3ff9d42ecdf937.zip
Add drivers for the EVK1101 - begin full port to the AVR32 UC3B line of AVRs.
-rw-r--r--LUFA/Common/Atomic.h99
-rw-r--r--LUFA/Common/BoardTypes.h3
-rw-r--r--LUFA/Common/Common.h21
-rw-r--r--LUFA/Drivers/Board/BUMBLEB/Joystick.h4
-rw-r--r--LUFA/Drivers/Board/Buttons.h4
-rw-r--r--LUFA/Drivers/Board/Dataflash.h2
-rw-r--r--LUFA/Drivers/Board/EVK1101/Buttons.h99
-rw-r--r--LUFA/Drivers/Board/EVK1101/Joystick.h117
-rw-r--r--LUFA/Drivers/Board/EVK1101/LEDs.h138
-rw-r--r--LUFA/Drivers/Board/Joystick.h4
-rw-r--r--LUFA/Drivers/Board/LEDs.h16
-rw-r--r--LUFA/Drivers/Board/Temperature.h6
-rw-r--r--LUFA/Drivers/Peripheral/AVRU4U6U7/SPI.h (renamed from LUFA/Drivers/Peripheral/SPI.h)2
-rw-r--r--LUFA/Drivers/Peripheral/AVRU4U6U7/Serial.h (renamed from LUFA/Drivers/Peripheral/Serial.h)0
-rw-r--r--LUFA/ManPages/DeviceSupport.txt2
-rw-r--r--LUFA/Scheduler/Scheduler.h10
16 files changed, 509 insertions, 18 deletions
diff --git a/LUFA/Common/Atomic.h b/LUFA/Common/Atomic.h
new file mode 100644
index 000000000..81ac10cc6
--- /dev/null
+++ b/LUFA/Common/Atomic.h
@@ -0,0 +1,99 @@
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2010.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.fourwalledcubicle.com
+*/
+
+/*
+ Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
+ permission notice and warranty disclaimer appear in supporting
+ documentation, and that the name of the author not be used in
+ advertising or publicity pertaining to distribution of the
+ software without specific, written prior permission.
+
+ The author disclaim all warranties with regard to this
+ software, including all implied warranties of merchantability
+ and fitness. In no event shall the author be liable for any
+ special, indirect or consequential damages or any damages
+ whatsoever resulting from loss of use, data or profits, whether
+ in an action of contract, negligence or other tortious action,
+ arising out of or in connection with the use or performance of
+ this software.
+*/
+
+/** \file
+ *
+ * Atomic block header for the 32-bit AVRs, modelled on the 8-bit AVR's util/atomic.h
+ * header.
+ *
+ * \note Do not include this file directly, rather include the Common.h header file instead to gain this file's
+ * functionality on the 32-bit AVRs.
+ */
+
+#ifndef __ATOMIC_H__
+#define __ATOMIC_H__
+
+ /* Includes: */
+ #include <avr32/io.h>
+ #include <stdint.h>
+ #include <stdbool.h>
+
+ /* Public Interface - May be used in end-application: */
+ /* Macros: */
+ #define ATOMIC_BLOCK(type) for ( type, __ToDo = __iCliRetVal(); \
+ __ToDo ; __ToDo = 0 )
+ #define NONATOMIC_BLOCK(type) for ( type, __ToDo = __iSeiRetVal(); \
+ __ToDo ; __ToDo = 0 )
+ #define ATOMIC_RESTORESTATE uint8_t sreg_save \
+ __attribute__((__cleanup__(__iRestore))) = 0 /* TODO */
+ #define ATOMIC_FORCEON uint8_t sreg_save \
+ __attribute__((__cleanup__(__iSeiParam))) = 0
+ #define NONATOMIC_RESTORESTATE uint8_t sreg_save \
+ __attribute__((__cleanup__(__iRestore))) = 0 /* TODO */
+ #define NONATOMIC_FORCEOFF uint8_t sreg_save \
+ __attribute__((__cleanup__(__iCliParam))) = 0
+
+ /* Private Interface - For use in library only: */
+ #if !defined(__DOXYGEN__)
+ /* Inline Functions: */
+ static __inline__ uint8_t __iSeiRetVal(void)
+ {
+ ((avr32_sr_t*)AVR32_SR_T)->gm = true;
+ return 1;
+ }
+
+ static __inline__ uint8_t __iCliRetVal(void)
+ {
+ ((avr32_sr_t*)AVR32_SR_T)->gm = false;
+ return 1;
+ }
+
+ static __inline__ void __iSeiParam(const uint8_t *__s)
+ {
+ ((avr32_sr_t*)AVR32_SR_T)->gm = true;
+ __asm__ volatile ("" ::: "memory");
+ (void)__s;
+ }
+
+ static __inline__ void __iCliParam(const uint8_t *__s)
+ {
+ ((avr32_sr_t*)AVR32_SR_T)->gm = false;
+ __asm__ volatile ("" ::: "memory");
+ (void)__s;
+ }
+
+ static __inline__ void __iRestore(const uint8_t *__s)
+ {
+ ((avr32_sr_t*)AVR32_SR_T)->gm = *__s;
+ __asm__ volatile ("" ::: "memory");
+ }
+ #endif
+
+#endif
diff --git a/LUFA/Common/BoardTypes.h b/LUFA/Common/BoardTypes.h
index 10e31ac1b..43b692dbd 100644
--- a/LUFA/Common/BoardTypes.h
+++ b/LUFA/Common/BoardTypes.h
@@ -94,6 +94,9 @@
* such as the Joystick driver, where the removal would adversely affect the code's operation is still disallowed. */
#define BOARD_NONE 10
+ /** Selects the EVK1101 specific board drivers, including Temperature, Button, Dataflash, Joystick and LED drivers. */
+ #define BOARD_EVK1101 11
+
#if !defined(__DOXYGEN__)
#define BOARD_ BOARD_NONE
diff --git a/LUFA/Common/Common.h b/LUFA/Common/Common.h
index 2ddb58c8c..4052480dd 100644
--- a/LUFA/Common/Common.h
+++ b/LUFA/Common/Common.h
@@ -56,8 +56,17 @@
#define __COMMON_H__
/* Includes: */
- #include <avr/io.h>
-
+ #if defined(__AVR32__)
+ #include <avr32/io.h>
+ #include <stdint.h>
+
+ #include "Atomic.h"
+
+ #define PROGMEM
+ #else
+ #include <avr/io.h>
+ #endif
+
#include "FunctionAttributes.h"
#include "BoardTypes.h"
@@ -179,6 +188,14 @@
}
}
+ /* Type Defines: */
+ #if defined(__AVR32__)
+ typedef uint32_t uintN_t;
+ typedef int32_t intN_t;
+ #else
+ typedef uint8_t uintN_t;
+ typedef int8_t intN_t;
+ #endif
#endif
/** @} */
diff --git a/LUFA/Drivers/Board/BUMBLEB/Joystick.h b/LUFA/Drivers/Board/BUMBLEB/Joystick.h
index 5d57ec559..180967759 100644
--- a/LUFA/Drivers/Board/BUMBLEB/Joystick.h
+++ b/LUFA/Drivers/Board/BUMBLEB/Joystick.h
@@ -30,7 +30,7 @@
/** \file
*
- * Board specific joystick driver header for the USBKEY. The BUMBLEB third-party board does not include any on-board
+ * Board specific joystick driver header for the BUMBLEB. The BUMBLEB third-party board does not include any on-board
* peripherals, but does have an officially recommended external peripheral layout for buttons, LEDs and a Joystick.
*
* \note This file should not be included directly. It is automatically included as needed by the joystick driver
@@ -40,7 +40,7 @@
/** \ingroup Group_Joystick
* @defgroup Group_Joystick_BUMBLEB BUMBLEB
*
- * Board specific joystick driver header for the USBKEY. The BUMBLEB third-party board does not include any on-board
+ * Board specific joystick driver header for the BUMBLEB. The BUMBLEB third-party board does not include any on-board
* peripherals, but does have an officially recommended external peripheral layout for buttons, LEDs and a Joystick.
*
* \note This file should not be included directly. It is automatically included as needed by the joystick driver
diff --git a/LUFA/Drivers/Board/Buttons.h b/LUFA/Drivers/Board/Buttons.h
index d908fd43a..f50977706 100644
--- a/LUFA/Drivers/Board/Buttons.h
+++ b/LUFA/Drivers/Board/Buttons.h
@@ -86,6 +86,8 @@
#include "EVK527/Buttons.h"
#elif (BOARD == BOARD_USER)
#include "Board/Buttons.h"
+ #elif (BOARD == BOARD_EVK1101)
+ #include "EVK1101/Buttons.h"
#else
#error The selected board does not contain any GPIO buttons.
#endif
@@ -103,7 +105,7 @@
*
* \return Mask indicating which board buttons are currently pressed
*/
- static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
+ static inline uintN_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
#endif
#endif
diff --git a/LUFA/Drivers/Board/Dataflash.h b/LUFA/Drivers/Board/Dataflash.h
index 762142c33..c0f314a3e 100644
--- a/LUFA/Drivers/Board/Dataflash.h
+++ b/LUFA/Drivers/Board/Dataflash.h
@@ -167,6 +167,8 @@
#include "EVK527/Dataflash.h"
#elif (BOARD == BOARD_USER)
#include "Board/Dataflash.h"
+ #elif (BOARD = BOARD_EVK1101)
+ #include "EVK1101/Dataflash.h"
#else
#error The selected board does not contain a dataflash IC.
#endif
diff --git a/LUFA/Drivers/Board/EVK1101/Buttons.h b/LUFA/Drivers/Board/EVK1101/Buttons.h
new file mode 100644
index 000000000..b827787c7
--- /dev/null
+++ b/LUFA/Drivers/Board/EVK1101/Buttons.h
@@ -0,0 +1,99 @@
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2010.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.fourwalledcubicle.com
+*/
+
+/*
+ Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
+ permission notice and warranty disclaimer appear in supporting
+ documentation, and that the name of the author not be used in
+ advertising or publicity pertaining to distribution of the
+ software without specific, written prior permission.
+
+ The author disclaim all warranties with regard to this
+ software, including all implied warranties of merchantability
+ and fitness. In no event shall the author be liable for any
+ special, indirect or consequential damages or any damages
+ whatsoever resulting from loss of use, data or profits, whether
+ in an action of contract, negligence or other tortious action,
+ arising out of or in connection with the use or performance of
+ this software.
+*/
+
+/** \file
+ *
+ * Board specific Buttons driver header for the EVK1101.
+ *
+ * \note This file should not be included directly. It is automatically included as needed by the Buttons driver
+ * dispatch header located in LUFA/Drivers/Board/Buttons.h.
+ */
+
+/** \ingroup Group_Buttons
+ * @defgroup Group_Buttons_EVK1101 EVK1101
+ *
+ * Board specific Buttons driver header for the EVK1101.
+ *
+ * \note This file should not be included directly. It is automatically included as needed by the Buttons driver
+ * dispatch header located in LUFA/Drivers/Board/Buttons.h.
+ *
+ * @{
+ */
+
+#ifndef __BUTTONS_EVK1101_H__
+#define __BUTTONS_EVK1101_H__
+
+ /* Includes: */
+ #include <avr32/io.h>
+ #include <stdbool.h>
+
+ #include "../../../Common/Common.h"
+
+ /* Enable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ extern "C" {
+ #endif
+
+ /* Preprocessor Checks: */
+ #if !defined(__INCLUDE_FROM_BUTTONS_H)
+ #error Do not include this file directly. Include LUFA/Drivers/Board/Buttons.h instead.
+ #endif
+
+ /* Public Interface - May be used in end-application: */
+ /* Macros: */
+ /** Button mask for the first button on the board. */
+ #define BUTTONS_BUTTON1 (1UL << 2)
+
+ /** Button mask for the second button on the board. */
+ #define BUTTONS_BUTTON2 (1UL << 3)
+
+ /* Inline Functions: */
+ #if !defined(__DOXYGEN__)
+ static inline void Buttons_Init(void)
+ {
+ AVR32_GPIO.port[1].gpers = (BUTTONS_BUTTON1 | BUTTONS_BUTTON2);
+ AVR32_GPIO.port[1].puers = (BUTTONS_BUTTON1 | BUTTONS_BUTTON2);
+ }
+
+ static inline uint32_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
+ static inline uint32_t Buttons_GetStatus(void)
+ {
+ return (~AVR32_GPIO.port[1].pvr & (BUTTONS_BUTTON1 | BUTTONS_BUTTON2));
+ }
+ #endif
+
+ /* Disable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ }
+ #endif
+
+#endif
+
+/** @} */
diff --git a/LUFA/Drivers/Board/EVK1101/Joystick.h b/LUFA/Drivers/Board/EVK1101/Joystick.h
new file mode 100644
index 000000000..0bcc59c94
--- /dev/null
+++ b/LUFA/Drivers/Board/EVK1101/Joystick.h
@@ -0,0 +1,117 @@
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2010.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.fourwalledcubicle.com
+*/
+
+/*
+ Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
+ permission notice and warranty disclaimer appear in supporting
+ documentation, and that the name of the author not be used in
+ advertising or publicity pertaining to distribution of the
+ software without specific, written prior permission.
+
+ The author disclaim all warranties with regard to this
+ software, including all implied warranties of merchantability
+ and fitness. In no event shall the author be liable for any
+ special, indirect or consequential damages or any damages
+ whatsoever resulting from loss of use, data or profits, whether
+ in an action of contract, negligence or other tortious action,
+ arising out of or in connection with the use or performance of
+ this software.
+*/
+
+/** \file
+ *
+ * Board specific joystick driver header for the EVK1101.
+ *
+ * \note This file should not be included directly. It is automatically included as needed by the joystick driver
+ * dispatch header located in LUFA/Drivers/Board/Joystick.h.
+ */
+
+/** \ingroup Group_Joystick
+ * @defgroup Group_Joystick_EVK1101 EVK1101
+ *
+ * Board specific joystick driver header for the EVK1101.
+ *
+ * \note This file should not be included directly. It is automatically included as needed by the joystick driver
+ * dispatch header located in LUFA/Drivers/Board/Joystick.h.
+ *
+ * @{
+ */
+
+#ifndef __JOYSTICK_EVK1101_H__
+#define __JOYSTICK_EVK1101_H__
+
+ /* Includes: */
+ #include <avr32/io.h>
+
+ #include "../../../Common/Common.h"
+
+ /* Enable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ extern "C" {
+ #endif
+
+ /* Preprocessor Checks: */
+ #if !defined(__INCLUDE_FROM_JOYSTICK_H)
+ #error Do not include this file directly. Include LUFA/Drivers/Board/Joystick.h instead.
+ #endif
+
+ /* Private Interface - For use in library only: */
+ #if !defined(__DOXYGEN__)
+ /* Macros: */
+ #define JOY_MASK_PA (1 << 13)
+ #define JOY_MASK_PB ((1 << 6) | (1 << 7) | (1 << 8) | (1 << 9))
+ #endif
+
+ /* Public Interface - May be used in end-application: */
+ /* Macros: */
+ /** Mask for the joystick being pushed in the left direction. */
+ #define JOY_LEFT (1UL << 6)
+
+ /** Mask for the joystick being pushed in the upward direction. */
+ #define JOY_UP (1UL << 7)
+
+ /** Mask for the joystick being pushed in the right direction. */
+ #define JOY_RIGHT (1UL << 8)
+
+ /** Mask for the joystick being pushed in the downward direction. */
+ #define JOY_DOWN (1UL << 9)
+
+ /** Mask for the joystick being pushed inward. */
+ #define JOY_PRESS (1UL << 13)
+
+ /* Inline Functions: */
+ #if !defined(__DOXYGEN__)
+ static inline void Joystick_Init(void)
+ {
+ AVR32_GPIO.port[0].gpers = JOY_MASK_PA;
+ AVR32_GPIO.port[0].puers = JOY_MASK_PA;
+ AVR32_GPIO.port[1].gpers = JOY_MASK_PB;
+ AVR32_GPIO.port[1].puers = JOY_MASK_PB;
+ }
+
+ static inline uint32_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
+ static inline uint32_t Joystick_GetStatus(void)
+ {
+ return ((~AVR32_GPIO.port[1].pvr & JOY_MASK_PB) |
+ (~AVR32_GPIO.port[0].pvr & JOY_MASK_PA));
+ }
+ #endif
+
+ /* Disable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ }
+ #endif
+
+#endif
+
+/** @} */
diff --git a/LUFA/Drivers/Board/EVK1101/LEDs.h b/LUFA/Drivers/Board/EVK1101/LEDs.h
new file mode 100644
index 000000000..f19e464d7
--- /dev/null
+++ b/LUFA/Drivers/Board/EVK1101/LEDs.h
@@ -0,0 +1,138 @@
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2010.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.fourwalledcubicle.com
+*/
+
+/*
+ Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
+ permission notice and warranty disclaimer appear in supporting
+ documentation, and that the name of the author not be used in
+ advertising or publicity pertaining to distribution of the
+ software without specific, written prior permission.
+
+ The author disclaim all warranties with regard to this
+ software, including all implied warranties of merchantability
+ and fitness. In no event shall the author be liable for any
+ special, indirect or consequential damages or any damages
+ whatsoever resulting from loss of use, data or profits, whether
+ in an action of contract, negligence or other tortious action,
+ arising out of or in connection with the use or performance of
+ this software.
+*/
+
+/** \file
+ *
+ * Board specific LED driver header for the EVK1101.
+ *
+ * \note This file should not be included directly. It is automatically included as needed by the LEDs driver
+ * dispatch header located in LUFA/Drivers/Board/LEDs.h.
+ */
+
+/** \ingroup Group_LEDs
+ * @defgroup Group_LEDs_EVK1101 EVK1101
+ *
+ * Board specific LED driver header for the EVK1101.
+ *
+ * \note This file should not be included directly. It is automatically included as needed by the LEDs driver
+ * dispatch header located in LUFA/Drivers/Board/LEDs.h.
+ *
+ * @{
+ */
+
+#ifndef __LEDS_EVK1101_H__
+#define __LEDS_EVK1101_H__
+
+ /* Includes: */
+ #include <avr32/io.h>
+
+ #include "../../../Common/Common.h"
+
+ /* Enable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ extern "C" {
+ #endif
+
+ /* Preprocessor Checks: */
+ #if !defined(__INCLUDE_FROM_LEDS_H)
+ #error Do not include this file directly. Include LUFA/Drivers/Board/LEDS.h instead.
+ #endif
+
+ /* Public Interface - May be used in end-application: */
+ /* Macros: */
+ /** LED mask for the first LED on the board. */
+ #define LEDS_LED1 (1UL << 7)
+
+ /** LED mask for the second LED on the board. */
+ #define LEDS_LED2 (1UL << 8)
+
+ /** LED mask for the third LED on the board. */
+ #define LEDS_LED3 (1UL << 21)
+
+ /** LED mask for the fourth LED on the board. */
+ #define LEDS_LED4 (1UL << 22)
+
+ /** LED mask for all the LEDs on the board. */
+ #define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2 | LEDS_LED3 | LEDS_LED4)
+
+ /** LED mask for the none of the board LEDs */
+ #define LEDS_NO_LEDS 0
+
+ /* Inline Functions: */
+ #if !defined(__DOXYGEN__)
+ static inline void LEDs_Init(void)
+ {
+ AVR32_GPIO.port[0].gpers = LEDS_ALL_LEDS;
+ AVR32_GPIO.port[0].oders = LEDS_ALL_LEDS;
+ AVR32_GPIO.port[0].ovrs = LEDS_ALL_LEDS;
+ }
+
+ static inline void LEDs_TurnOnLEDs(const uint32_t LEDMask)
+ {
+ AVR32_GPIO.port[0].ovrc = LEDMask;
+ }
+
+ static inline void LEDs_TurnOffLEDs(const uint32_t LEDMask)
+ {
+ AVR32_GPIO.port[0].ovrs = LEDMask;
+ }
+
+ static inline void LEDs_SetAllLEDs(const uint32_t LEDMask)
+ {
+ AVR32_GPIO.port[0].ovrs = LEDS_ALL_LEDS;
+ AVR32_GPIO.port[0].ovrc = LEDMask;
+ }
+
+ static inline void LEDs_ChangeLEDs(const uint32_t LEDMask, const uint32_t ActiveMask)
+ {
+ AVR32_GPIO.port[0].ovrs = LEDMask;
+ AVR32_GPIO.port[0].ovrc = ActiveMask;
+ }
+
+ static inline void LEDs_ToggleLEDs(const uint32_t LEDMask)
+ {
+ AVR32_GPIO.port[0].ovrt = LEDMask;
+ }
+
+ static inline uint32_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
+ static inline uint32_t LEDs_GetLEDs(void)
+ {
+ return (AVR32_GPIO.port[0].ovr & LEDS_ALL_LEDS);
+ }
+ #endif
+
+ /* Disable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ }
+ #endif
+
+#endif
+
+/** @} */
diff --git a/LUFA/Drivers/Board/Joystick.h b/LUFA/Drivers/Board/Joystick.h
index 39375a265..b14e98986 100644
--- a/LUFA/Drivers/Board/Joystick.h
+++ b/LUFA/Drivers/Board/Joystick.h
@@ -83,6 +83,8 @@
#include "EVK527/Joystick.h"
#elif (BOARD == BOARD_USER)
#include "Board/Joystick.h"
+ #elif (BOARD == BOARD_EVK1101)
+ #include "EVK1101/Joystick.h"
#else
#error The selected board does not contain a joystick.
#endif
@@ -100,7 +102,7 @@
* \return Mask indicating the joystick direction - see corresponding board specific Joystick.h file
* for direction masks
*/
- static inline uint8_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
+ static inline uintN_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
#endif
#endif
diff --git a/LUFA/Drivers/Board/LEDs.h b/LUFA/Drivers/Board/LEDs.h
index 94fbf3cf7..1def9ea90 100644
--- a/LUFA/Drivers/Board/LEDs.h
+++ b/LUFA/Drivers/Board/LEDs.h
@@ -84,7 +84,7 @@
static inline void LEDs_SetAllLEDs(const uint8_t LEDMask) {};
static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask) {};
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) {};
- static inline uint8_t LEDs_GetLEDs(void) { return 0; }
+ static inline uintN_t LEDs_GetLEDs(void) { return 0; }
#elif (BOARD == BOARD_USBKEY)
#include "USBKEY/LEDs.h"
#elif (BOARD == BOARD_STK525)
@@ -105,6 +105,8 @@
#include "EVK527/LEDs.h"
#elif (BOARD == BOARD_USER)
#include "Board/LEDs.h"
+ #elif (BOARD == BOARD_EVK1101)
+ #include "EVK1101/LEDs.h"
#endif
#if !defined(LEDS_LED1)
@@ -134,20 +136,20 @@
*
* \param[in] LEDMask Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)
*/
- static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask);
+ static inline void LEDs_TurnOnLEDs(const uintN_t LEDMask);
/** Turns off the LEDs specified in the given LED mask.
*
* \param[in] LEDMask Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)
*/
- static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask);
+ static inline void LEDs_TurnOffLEDs(const uintN_t LEDMask);
/** Turns off all LEDs not specified in the given LED mask, and turns on all the LEDs in the given LED
* mask.
*
* \param[in] LEDMask Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)
*/
- static inline void LEDs_SetAllLEDs(const uint8_t LEDMask);
+ static inline void LEDs_SetAllLEDs(const uintN_t LEDMask);
/** Turns off all LEDs in the LED mask that are not set in the active mask, and turns on all the LEDs
* specified in both the LED and active masks.
@@ -155,20 +157,20 @@
* \param[in] LEDMask Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)
* \param[in] ActiveMask Mask of whether the LEDs in the LED mask should be turned on or off
*/
- static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask);
+ static inline void LEDs_ChangeLEDs(const uintN_t LEDMask, const uintN_t ActiveMask);
/** Toggles all LEDs in the LED mask, leaving all others in their current states.
*
* \param[in] LEDMask Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)
*/
- static inline void LEDs_ToggleLEDs(const uint8_t LEDMask);
+ static inline void LEDs_ToggleLEDs(const uintN_t LEDMask);
/** Returns the status of all the board LEDs; set LED masks in the return value indicate that the
* corresponding LED is on.
*
* \return Mask of the board LEDs which are currently turned on
*/
- static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
+ static inline uintN_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
#endif
#endif
diff --git a/LUFA/Drivers/Board/Temperature.h b/LUFA/Drivers/Board/Temperature.h
index 7a5af367b..12e6df137 100644
--- a/LUFA/Drivers/Board/Temperature.h
+++ b/LUFA/Drivers/Board/Temperature.h
@@ -53,7 +53,11 @@
#define __TEMPERATURE_H__
/* Includes: */
- #include <avr/pgmspace.h>
+ #if defined(__AVR32__)
+ #include <stdint.h>
+ #else
+ #include <avr/pgmspace.h>
+ #endif
#include "../../Common/Common.h"
#include "../Peripheral/ADC.h"
diff --git a/LUFA/Drivers/Peripheral/SPI.h b/LUFA/Drivers/Peripheral/AVRU4U6U7/SPI.h
index 6416ceae6..25503b6c3 100644
--- a/LUFA/Drivers/Peripheral/SPI.h
+++ b/LUFA/Drivers/Peripheral/AVRU4U6U7/SPI.h
@@ -106,7 +106,7 @@
#define SPI_MODE_MASTER (1 << MSTR)
/* Inline Functions: */
- /** Initializes the SPI subsystem, ready for transfers. Must be called before calling any other
+ /** Initialises the SPI subsystem, ready for transfers. Must be called before calling any other
* SPI routines.
*
* \param[in] SPIOptions SPI Options, a mask consisting of one of each of the SPI_SPEED_*,
diff --git a/LUFA/Drivers/Peripheral/Serial.h b/LUFA/Drivers/Peripheral/AVRU4U6U7/Serial.h
index d00f9c1c0..d00f9c1c0 100644
--- a/LUFA/Drivers/Peripheral/Serial.h
+++ b/LUFA/Drivers/Peripheral/AVRU4U6U7/Serial.h
diff --git a/LUFA/ManPages/DeviceSupport.txt b/LUFA/ManPages/DeviceSupport.txt
index 0902b90a2..14022e214 100644
--- a/LUFA/ManPages/DeviceSupport.txt
+++ b/LUFA/ManPages/DeviceSupport.txt
@@ -20,11 +20,13 @@
* - AT90USB647 (USB Host and Device)
* - AT90USB1286 (USB Device Only)
* - AT90USB1287 (USB Host and Device)
+ * - AT32UC3B0256 (EXPERIMENTAL)
*
* Currently supported Atmel boards:
* - AT90USBKEY
* - ATAVRUSBRF01
* - EVK527
+ * - EVK1101 (EXPERIMENTAL)
* - RZUSBSTICK
* - STK525
* - STK526
diff --git a/LUFA/Scheduler/Scheduler.h b/LUFA/Scheduler/Scheduler.h
index f71736fd5..084fb1e8c 100644
--- a/LUFA/Scheduler/Scheduler.h
+++ b/LUFA/Scheduler/Scheduler.h
@@ -86,12 +86,16 @@
#define __SCHEDULER_H__
/* Includes: */
- #include <avr/io.h>
+ #if defined(__AVR32__)
+ #include <avr32/io.h>
#include <stdbool.h>
-
+ #else
+ #include <avr/io.h>
#include <util/atomic.h>
+ #include <stdbool.h>
+ #endif
- #include "../Common/Common.h"
+ #include "../Common/Common.h"
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)