mt29f nand driver: use context the right way, storing and using right chip select...
[bertos.git] / bertos / cpu / cortex-m3 / drv / mt29f_sam3.h
index d15f64f6d7bb83adc395774cb631559af89b5d46..c3fa31d5b6f9b4c3eb05b4c5caae57bcccc8b84e 100644 (file)
 
 
 // MT29F2G08AAD, FIXME: configurable
-#define MT29F_PAGE_SIZE   0x800       // 2048 B
+#define MT29F_DATA_SIZE   0x800       // 2048 B
+#define MT29F_SPARE_SIZE  0x40        // 64 B
+#define MT29F_PAGE_SIZE   (MT29F_DATA_SIZE + MT29F_SPARE_SIZE)
 #define MT29F_BLOCK_SIZE  0x20000     // 128 kB
 #define MT29F_SIZE        0x10000000  // 256 MB
-#define MT29F_CSID        NFC_CMD_CSID_0  // Chip select
-
-// Addresses for sending command, addresses and data bytes to flash
-#define MT29F_CMD_ADDR    0x60400000
-#define MT29F_ADDR_ADDR   0x60200000
-#define MT29F_DATA_ADDR   0x60000000
-
+#define MT29F_ECC_NWORDS  (MT29F_DATA_SIZE / 256)
 
 /*
  * PIO definitions.
 #define MT29F_PINS_PORTC    (MT29F_PIN_OE | MT29F_PIN_WE | MT29F_PIN_IO)
 #define MT29F_PERIPH_PORTC  PIO_PERIPH_A
 
-#define MT29F_PIN_CLE       BV(22)
-#define MT29F_PIN_ALE       BV(21)
+#define MT29F_PIN_CLE       BV(9)
+#define MT29F_PIN_ALE       BV(8)
 #define MT29F_PINS_PORTD    (MT29F_PIN_CLE | MT29F_PIN_ALE)
 #define MT29F_PERIPH_PORTD  PIO_PERIPH_A
 
 
-int mt29f_blockErase(Mt29f *fls, size_t blk_offset);
-
-
 #endif /* MT29F_SAM3_H */