Add spi with dma implementation for sam3, and define generic header for both. Note...
[bertos.git] / bertos / cpu / arm / drv / spi_dma_at91.c
index 25a104103705be0e6af8fb1a1697d5828038ae65..57ed2fbd7203365246ff10cdf8da67e99c0a41e7 100644 (file)
  * \author Luca Ottaviano <lottaviano@develer.com>
  */
 
-#include "cfg/cfg_spi_dma.h"
+#include <drv/spi_dma.h>
 
-#include "spi_dma_at91.h"
+#include "cfg/cfg_spi_dma.h"
 #include "hw/hw_spi_dma.h"
 
+#include <io/at91sam7.h>
 #include <io/kfile.h>
+
 #include <struct/fifobuf.h>
 #include <struct/kfile_fifo.h>
+
 #include <drv/timer.h>
 
 #include <cpu/attr.h>
@@ -92,7 +95,7 @@ static size_t spi_dma_write(struct KFile *fd, const void *_buf, size_t size)
  */
 static const uint8_t tx_dummy_buf[CONFIG_SPI_DMA_MAX_RX] = { [0 ... (CONFIG_SPI_DMA_MAX_RX - 1)] = 0xFF };
 
-static size_t spi_dma_read(struct KFile *fd, void *_buf, size_t size)
+static size_t spi_dma_read(UNUSED_ARG(struct KFile *, fd), void *_buf, size_t size)
 {
        size_t count, total_rx = 0;
        uint8_t *buf = (uint8_t *)_buf;
@@ -129,7 +132,7 @@ static size_t spi_dma_read(struct KFile *fd, void *_buf, size_t size)
 
 #define SPI_DMA_IRQ_PRIORITY 4
 
-void spi_dma_init(SpiDmaAt91 *spi)
+void spi_dma_init(SpiDma *spi)
 {
        /* Disable PIO on SPI pins */
        PIOA_PDR = BV(SPI0_SPCK) | BV(SPI0_MOSI) | BV(SPI0_MISO);
@@ -158,7 +161,7 @@ void spi_dma_init(SpiDmaAt91 *spi)
        /* Enable SPI */
        SPI0_CR = BV(SPI_SPIEN);
 
-       DB(spi->fd._type = KFT_SPIDMAAT91);
+       DB(spi->fd._type = KFT_SPIDMA);
        spi->fd.write = spi_dma_write;
        spi->fd.read = spi_dma_read;
        spi->fd.flush = spi_dma_flush;