summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/atsam/spi/atsam_spi_bus.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/arm/atsam/spi/atsam_spi_bus.c')
-rw-r--r--c/src/lib/libbsp/arm/atsam/spi/atsam_spi_bus.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/arm/atsam/spi/atsam_spi_bus.c b/c/src/lib/libbsp/arm/atsam/spi/atsam_spi_bus.c
index 00f5d33696..468e4eca9a 100644
--- a/c/src/lib/libbsp/arm/atsam/spi/atsam_spi_bus.c
+++ b/c/src/lib/libbsp/arm/atsam/spi/atsam_spi_bus.c
@@ -32,8 +32,27 @@
#include <rtems/irq-extension.h>
+#include <dev/spi/spi.h>
+
#define MAX_SPI_FREQUENCY 50000000
+typedef struct {
+ spi_bus base;
+ Spi *regs;
+ rtems_vector_number irq;
+ uint32_t board_id;
+ uint32_t msg_todo;
+ const spi_ioc_transfer *msgs;
+ rtems_id task_id;
+ sXdmad Dma;
+ Spid SpiDma;
+ uint32_t dma_tx_channel;
+ uint32_t dma_rx_channel;
+ bool rx_transfer_done;
+ bool tx_transfer_done;
+ bool chip_select_active;
+} atsam_spi_bus;
+
static void atsam_interrupt_handler(void *arg)
{
atsam_spi_bus *bus = (atsam_spi_bus *)arg;