From f3049d958e4ef6cc919ff5f1302c1b384fed6bbf Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Wed, 19 Sep 2012 19:12:52 +0000 Subject: Fixed incorrect Dataflash functionality in the USBKEY board if the driver is modified for a single Dataflash chip (thanks to Jonathan Oakley). --- LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'LUFA/Drivers/Board/AVR8/XPLAIN') diff --git a/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h b/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h index a20c51947..950d4a287 100644 --- a/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h +++ b/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h @@ -83,7 +83,7 @@ /* Private Interface - For use in library only: */ #if !defined(__DOXYGEN__) /* Macros: */ - #define DATAFLASH_CHIPCS_MASK (1 << 5) + #define DATAFLASH_CHIPCS_MASK DATAFLASH_CHIP1 #define DATAFLASH_CHIPCS_DDR DDRB #define DATAFLASH_CHIPCS_PORT PORTB #endif @@ -94,10 +94,10 @@ #define DATAFLASH_TOTALCHIPS 1 /** Mask for no dataflash chip selected. */ - #define DATAFLASH_NO_CHIP DATAFLASH_CHIPCS_MASK + #define DATAFLASH_NO_CHIP 0 /** Mask for the first dataflash chip selected. */ - #define DATAFLASH_CHIP1 0 + #define DATAFLASH_CHIP1 (1 << 5) #if ((BOARD != BOARD_XPLAIN_REV1) || defined(__DOXYGEN__)) /** Internal main memory page size for the board's dataflash ICs. */ @@ -156,12 +156,12 @@ /** Determines the currently selected dataflash chip. * * \return Mask of the currently selected Dataflash chip, either \ref DATAFLASH_NO_CHIP if no chip is selected - * or a DATAFLASH_CHIPn mask (where n is the chip number). + * or a DATAFLASH_CHIPn mask (where n is the chip number). */ static inline uint8_t Dataflash_GetSelectedChip(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT; static inline uint8_t Dataflash_GetSelectedChip(void) { - return (DATAFLASH_CHIPCS_PORT & DATAFLASH_CHIPCS_MASK); + return (~DATAFLASH_CHIPCS_PORT & DATAFLASH_CHIPCS_MASK); } /** Selects the given dataflash chip. @@ -172,7 +172,7 @@ static inline void Dataflash_SelectChip(const uint8_t ChipMask) ATTR_ALWAYS_INLINE; static inline void Dataflash_SelectChip(const uint8_t ChipMask) { - DATAFLASH_CHIPCS_PORT = ((DATAFLASH_CHIPCS_PORT & ~DATAFLASH_CHIPCS_MASK) | ChipMask); + DATAFLASH_CHIPCS_PORT = ((DATAFLASH_CHIPCS_PORT | DATAFLASH_CHIPCS_MASK) & ~ChipMask); } /** Deselects the current dataflash chip, so that no dataflash is selected. */ -- cgit v1.2.3