*
* -->
*
- * \brief Function library for AT45DB081D Flash memory.
+ * \brief Function library for dataflash AT45DB family (interface).
*
+ * \version $Id: dataflash.h 21658 2008-06-05 16:42:54Z asterix $
*
- * \version $Id: dataflash.h 20677 2008-02-19 14:29:52Z batt $
* \author Daniele Basile <asterix@develer.com>
*/
#ifndef DRV_DATAFLASH_H
#define DRV_DATAFLASH_H
-#include <kern/kfile.h>
#include <cfg/compiler.h>
-#include <appconfig.h>
-
+#include <kern/kfile.h>
/**
* Type definitions for dflash memory.
*/
typedef enum DataflashType
{
- DFT_AT45DB041B,
+ DFT_AT45DB041B = 0,
DFT_AT45DB081D,
DFT_AT45DB161D,
+ DFT_AT45DB642D,
DFT_CNT
} DataflashType;
/**
* Dataflash KFile context structure.
*/
-typedef struct KFileDataflash
+typedef struct DataFlash
{
KFile fd; ///< File descriptor.
KFile *channel; ///< Dataflash comm channel (usually SPI).
bool page_dirty; ///< True if current_page is dirty (needs to be flushed).
dataflash_setReset_t *setReset; ///< Callback used to set reset pin of dataflash.
dataflash_setCS_t *setCS; ///< Callback used to set CS pin of dataflash.
-} KFileDataflash;
+} DataFlash;
/**
* ID for dataflash.
#define KFT_DATAFLASH MAKE_ID('D', 'F', 'L', 'H')
/**
- * Convert + ASSERT from generic KFile to KFileDataflash.
+ * Convert + ASSERT from generic KFile to DataFlash.
*/
-INLINE KFileDataflash * KFILEDATAFLASH(KFile *fd)
+INLINE DataFlash * DATAFLASH_CAST(KFile *fd)
{
ASSERT(fd->_type == KFT_DATAFLASH);
- return (KFileDataflash *)fd;
+ return (DataFlash *)fd;
}
#define RESET_PULSE_WIDTH 10 ///< Width of reset pulse in usec.
} DataflashInfo;
-bool dataflash_init(KFileDataflash *fd, KFile *ch, DataflashType type, dataflash_setCS_t *setCS, dataflash_setReset_t *setReset);
+bool dataflash_init(DataFlash *fd, KFile *ch, DataflashType type, dataflash_setCS_t *setCS, dataflash_setReset_t *setReset);
+
+/**
+ * To test data falsh drive you could use
+ * this functions. To use these functions make sure to include in your make file the
+ * drv/datafalsh_test.c source.
+ *
+ * (see drv/datafalsh_test.c for more detail)
+ */
+int dataflash_testSetUp(void);
+int dataflash_testRun(void);
+int dataflash_testTearDown(void);
#endif /* DRV_DATAFLASH_H */