summaryrefslogtreecommitdiff
path: root/digital/avr/modules/flash/flash.h
diff options
context:
space:
mode:
authorNélio Laranjeiro2010-01-13 23:12:46 +0100
committerNélio Laranjeiro2010-01-13 23:12:46 +0100
commit466780f253e1837d7217b98c96b143ff4112e315 (patch)
treee3485172b970ad39e45f7678d4b904305d8f44c6 /digital/avr/modules/flash/flash.h
parenta20ca6eb18821ee4d5eab5eec33723e7c61d88b6 (diff)
digital/avr/modules/flash: replace callback init by a macro, closes #104
Diffstat (limited to 'digital/avr/modules/flash/flash.h')
-rw-r--r--digital/avr/modules/flash/flash.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/digital/avr/modules/flash/flash.h b/digital/avr/modules/flash/flash.h
index 4bbdfd2b..89c492b9 100644
--- a/digital/avr/modules/flash/flash.h
+++ b/digital/avr/modules/flash/flash.h
@@ -38,6 +38,19 @@
#define FLASH_CS_DISABLE \
AC_FLASH_PORT |= _BV(AC_FLASH_BIT_SS);
+/** Initialise the Flash driver callbacks functions. */
+#define FLASH_DRV_INIT(drv) \
+ ({flash.erase_func = flash_ ## drv ## _erase; \
+ flash.send_cmd_func = flash_ ## drv ## _send_command; \
+ flash.read_status_func = flash_ ## drv ## _read_status; \
+ flash.is_busy_func = flash_ ## drv ## _is_busy; \
+ flash.write_func = flash_ ## drv ## _write; \
+ flash.read_func = flash_ ## drv ## _read; \
+ flash.read_array_func = flash_ ## drv ## _read_array; \
+ flash.write_array_func = flash_ ## drv ## _write_array; \
+ flash.flash_size_func = flash_ ## drv ## _size; \
+ flash.flash_block_size_func = flash_ ## drv ## _block_size;})
+
enum flash_cmd_t
{
FLASH_CMD_INIT,