Fix warning when not compiled for UID auto-selection mode.
[pub/USBasp.git] / LUFA / Drivers / Board / Dataflash.h
index 5281a19..b4bd39d 100644 (file)
@@ -39,6 +39,8 @@
  *
  *  If the BOARD value is set to BOARD_USER, this will include the /Board/Dataflash.h file in the user project
  *  directory.
  *
  *  If the BOARD value is set to BOARD_USER, this will include the /Board/Dataflash.h file in the user project
  *  directory.
+ *
+ *  For possible BOARD makefile values, see \ref Group_BoardTypes.
  */
  
 /** \ingroup Group_BoardDrivers
  */
  
 /** \ingroup Group_BoardDrivers
@@ -55,6 +57,8 @@
  *  If the BOARD value is set to BOARD_USER, this will include the /Board/Dataflash.h file in the user project
  *  directory. Otherwise, it will include the appropriate built in board driver header file.
  *
  *  If the BOARD value is set to BOARD_USER, this will include the /Board/Dataflash.h file in the user project
  *  directory. Otherwise, it will include the appropriate built in board driver header file.
  *
+ *  For possible BOARD makefile values, see \ref Group_BoardTypes.
+ *
  *  @{
  */
  
  *  @{
  */
  
@@ -70,7 +74,7 @@
        /* Includes: */
        #include "../Peripheral/SPI.h"
        #include "../../Common/Common.h"
        /* Includes: */
        #include "../Peripheral/SPI.h"
        #include "../../Common/Common.h"
-               
+
        /* Enable C linkage for C++ Compilers: */
                #if defined(__cplusplus)
                        extern "C" {
        /* Enable C linkage for C++ Compilers: */
                #if defined(__cplusplus)
                        extern "C" {
                         */
                        #define DATAFLASH_CHIP_MASK(index)      __GET_DATAFLASH_MASK(index)
                        
                         */
                        #define DATAFLASH_CHIP_MASK(index)      __GET_DATAFLASH_MASK(index)
                        
-               /* Pseudo-Function Macros: */
-                       #if defined(__DOXYGEN__)
-                               /** 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).
-                                */
-                               static inline uint8_t Dataflash_GetSelectedChip(void);
-
-                               /** Selects the given dataflash chip.
-                                *
-                                *  \param[in]  ChipMask  Mask of the Dataflash IC to select, in the form of DATAFLASH_CHIPn mask (where n is
-                                *              the chip number).
-                                */
-                               static inline void Dataflash_SelectChip(uint8_t ChipMask);
-
-                               /** Deselects the current dataflash chip, so that no dataflash is selected. */
-                               static inline void Dataflash_DeselectChip(void);
-                       #else
-                               #define Dataflash_GetSelectedChip()          (DATAFLASH_CHIPCS_PORT & DATAFLASH_CHIPCS_MASK)
+               /* Inline Functions: */
+                       /** Initialises the dataflash driver so that commands and data may be sent to an attached dataflash IC.
+                        *  The AVR's SPI driver MUST be initialized before any of the dataflash commands are used.
+                        */
+                       static inline void Dataflash_Init(void);
 
 
-                               #define Dataflash_SelectChip(mask)   MACROS{ DATAFLASH_CHIPCS_PORT = ((DATAFLASH_CHIPCS_PORT \
-                                                                                                                        & ~DATAFLASH_CHIPCS_MASK) | (mask));            }MACROE
-                               
-                               #define Dataflash_DeselectChip()             Dataflash_SelectChip(DATAFLASH_NO_CHIP)
-                       #endif
+                       /** 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).
+                        */
+                       static inline uint8_t Dataflash_GetSelectedChip(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;
+
+                       /** Selects the given dataflash chip.
+                        *
+                        *  \param[in]  ChipMask  Mask of the Dataflash IC to select, in the form of DATAFLASH_CHIPn mask (where n is
+                        *              the chip number).
+                        */
+                       static inline void Dataflash_SelectChip(const uint8_t ChipMask) ATTR_ALWAYS_INLINE;
+
+                       /** Deselects the current dataflash chip, so that no dataflash is selected. */
+                       static inline void Dataflash_DeselectChip(void) ATTR_ALWAYS_INLINE;
+
+                       /** Selects a dataflash IC from the given page number, which should range from 0 to
+                        *  ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1). For boards containing only one
+                        *  dataflash IC, this will select DATAFLASH_CHIP1. If the given page number is outside
+                        *  the total number of pages contained in the boards dataflash ICs, all dataflash ICs
+                        *  are deselected.
+                        *
+                        *  \param[in] PageAddress  Address of the page to manipulate, ranging from
+                        *                          ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1).
+                        */
+                       static inline void Dataflash_SelectChipFromPage(const uint16_t PageAddress);
                        
                        
-               /* Inline Functions: */
+                       /** Toggles the select line of the currently selected dataflash IC, so that it is ready to receive
+                        *  a new command.
+                        */
+                       static inline void Dataflash_ToggleSelectedChipCS(void);
+
+                       /** Spin-loops while the currently selected dataflash is busy executing a command, such as a main
+                        *  memory page program or main memory to buffer transfer.
+                        */
+                       static inline void Dataflash_WaitWhileBusy(void);
+
+                       /** Sends a set of page and buffer address bytes to the currently selected dataflash IC, for use with
+                        *  dataflash commands which require a complete 24-byte address.
+                        *
+                        *  \param[in] PageAddress  Page address within the selected dataflash IC
+                        *  \param[in] BufferByte   Address within the dataflash's buffer
+                        */
+                       static inline void Dataflash_SendAddressBytes(uint16_t PageAddress,
+                                                                     const uint16_t BufferByte);
+
                        /** Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash.
                         *
                         *  \param[in] Byte of data to send to the dataflash
                        /** Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash.
                         *
                         *  \param[in] Byte of data to send to the dataflash
                        #else
                                #error The selected board does not contain a dataflash IC.
                        #endif
                        #else
                                #error The selected board does not contain a dataflash IC.
                        #endif
-               
-               /* Inline Functions: */
-                       /** Initializes the dataflash driver so that commands and data may be sent to an attached dataflash IC.
-                        *  The AVR's SPI driver MUST be initialized before any of the dataflash commands are used.
-                        */
-                       static inline void Dataflash_Init(void)
-                       {
-                               DATAFLASH_CHIPCS_DDR  |= DATAFLASH_CHIPCS_MASK;
-                               DATAFLASH_CHIPCS_PORT |= DATAFLASH_CHIPCS_MASK;
-                       }
-                       
-                       /** Toggles the select line of the currently selected dataflash IC, so that it is ready to receive
-                        *  a new command.
-                        */
-                       static inline void Dataflash_ToggleSelectedChipCS(void)
-                       {
-                               uint8_t SelectedChipMask = Dataflash_GetSelectedChip();
-                                       
-                               Dataflash_DeselectChip();
-                               Dataflash_SelectChip(SelectedChipMask);
-                       }
-
-                       /** Spin-loops while the currently selected dataflash is busy executing a command, such as a main
-                        *  memory page program or main memory to buffer transfer.
-                        */
-                       static inline void Dataflash_WaitWhileBusy(void)
-                       {
-                               Dataflash_ToggleSelectedChipCS();
-                               Dataflash_SendByte(DF_CMD_GETSTATUS);
-                               while (!(Dataflash_ReceiveByte() & DF_STATUS_READY));
-                               Dataflash_ToggleSelectedChipCS();                               
-                       }
-
-                       /** Selects a dataflash IC from the given page number, which should range from 0 to
-                        *  ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1). For boards containing only one
-                        *  dataflash IC, this will select DATAFLASH_CHIP1. If the given page number is outside
-                        *  the total number of pages contained in the boards dataflash ICs, all dataflash ICs
-                        *  are deselected.
-                        *
-                        *  \param[in] PageAddress  Address of the page to manipulate, ranging from
-                        *                          ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1).
-                        */
-                       static inline void Dataflash_SelectChipFromPage(const uint16_t PageAddress);
-
-                       /** Sends a set of page and buffer address bytes to the currently selected dataflash IC, for use with
-                        *  dataflash commands which require a complete 24-byte address.
-                        *
-                        *  \param[in] PageAddress  Page address within the selected dataflash IC
-                        *  \param[in] BufferByte   Address within the dataflash's buffer
-                        */
-                       static inline void Dataflash_SendAddressBytes(uint16_t PageAddress, const uint16_t BufferByte);
 
        /* Disable C linkage for C++ Compilers: */
                #if defined(__cplusplus)
 
        /* Disable C linkage for C++ Compilers: */
                #if defined(__cplusplus)