From a56d95e8c2f77e0099014689221ca6881ef5563d Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Thu, 7 Jan 2010 12:38:32 +0000
Subject: [PATCH] Fix XPLAIN Dataflash and LED drivers.

---
 LUFA/Drivers/Board/XPLAIN/Dataflash.h |  6 ++----
 LUFA/Drivers/Board/XPLAIN/LEDs.h      | 14 +++++++-------
 LUFA/Drivers/USB/HighLevel/USBMode.h  |  2 +-
 LUFA/ManPages/ChangeLog.txt           |  2 ++
 4 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/LUFA/Drivers/Board/XPLAIN/Dataflash.h b/LUFA/Drivers/Board/XPLAIN/Dataflash.h
index d793d306f..de71f29ed 100644
--- a/LUFA/Drivers/Board/XPLAIN/Dataflash.h
+++ b/LUFA/Drivers/Board/XPLAIN/Dataflash.h
@@ -72,7 +72,7 @@
 			/** Mask for the first dataflash chip selected. */
 			#define DATAFLASH_CHIP1                      (1 << 5)
 
-			#if BOAD == XPLAIN_REV1
+			#if (BOARD == BOARD_XPLAIN_REV1)
 				#define DATAFLASH_PAGE_SIZE              256
 
 				#define DATAFLASH_PAGES                  2048							
@@ -111,9 +111,7 @@
 			 *  \param[in] BufferByte   Address within the dataflash's buffer
 			 */
 			static inline void Dataflash_SendAddressBytes(uint16_t PageAddress, const uint16_t BufferByte)
-			{	
-				PageAddress >>= 1;
-				
+			{
 				Dataflash_SendByte(PageAddress >> 5);
 				Dataflash_SendByte((PageAddress << 3) | (BufferByte >> 8));
 				Dataflash_SendByte(BufferByte);
diff --git a/LUFA/Drivers/Board/XPLAIN/LEDs.h b/LUFA/Drivers/Board/XPLAIN/LEDs.h
index 6951ce763..600be9f26 100644
--- a/LUFA/Drivers/Board/XPLAIN/LEDs.h
+++ b/LUFA/Drivers/Board/XPLAIN/LEDs.h
@@ -75,28 +75,28 @@
 		#if !defined(__DOXYGEN__)
 			static inline void LEDs_Init(void)
 			{
-				DDRB  |=  LEDS_ALL_LEDS;
-				PORTB &= ~LEDS_ALL_LEDS;
+				DDRB  |= LEDS_ALL_LEDS;
+				PORTB |= LEDS_ALL_LEDS;
 			}
 			
 			static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
 			{
-				PORTB |= LEDMask;
+				PORTB &= ~LEDMask;
 			}
 
 			static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)
 			{
-				PORTB &= ~LEDMask;
+				PORTB |= LEDMask;
 			}
 
 			static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)
 			{
-				PORTB = ((PORTB & ~LEDS_ALL_LEDS) | LEDMask);
+				PORTB = ((PORTB | LEDS_ALL_LEDS) & ~LEDMask);
 			}
 			
 			static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask)
 			{
-				PORTB = ((PORTB & ~(LEDMask & LEDS_ALL_LEDS)) | (ActiveMask & LEDS_ALL_LEDS));
+				PORTB = ((PORTB | (LEDMask & LEDS_ALL_LEDS)) & (~ActiveMask & LEDS_ALL_LEDS));
 			}
 			
 			static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
@@ -107,7 +107,7 @@
 			static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
 			static inline uint8_t LEDs_GetLEDs(void)
 			{
-				return (PORTB & LEDS_ALL_LEDS);
+				return (~PORTB & LEDS_ALL_LEDS);
 			}
 		#endif
 		
diff --git a/LUFA/Drivers/USB/HighLevel/USBMode.h b/LUFA/Drivers/USB/HighLevel/USBMode.h
index 9e2b1ff27..0f2ecab88 100644
--- a/LUFA/Drivers/USB/HighLevel/USBMode.h
+++ b/LUFA/Drivers/USB/HighLevel/USBMode.h
@@ -84,7 +84,7 @@
 			#if (defined(__AVR_AT90USB162__) || defined(__AVR_AT90USB82__)  || \
 			     defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega8U2__))
 				#define USB_SERIES_2_AVR
-			#elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))
+			#elif (defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega16U4__))
 				#define USB_SERIES_4_AVR
 			#elif (defined(__AVR_ATmega32U6__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__))
 				#define USB_SERIES_6_AVR
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index 79fa8242b..351c33f3e 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -32,6 +32,8 @@
   *  - Fixed AVRISP PDI race condition where the guard time between direction changes could be interpreted as a start bit
   *  - Fixed ADC_IsReadingComplete() returning an inverted result
   *  - Fixed blocking CDC streams not aborting when the host is disconnected
+  *  - Fixed XPLAIN board Dataflash driver broken due to incorrect preprocessor commands
+  *  - Fixed inverted XPLAIN LED driver output (LED turned on when it was supposed to be turned off, and vice-versa)
   *
   *  \section Sec_ChangeLog091223 Version 091223
   *
-- 
GitLab