summaryrefslogtreecommitdiff
path: root/fw/fe310/eos/spi.h
diff options
context:
space:
mode:
Diffstat (limited to 'fw/fe310/eos/spi.h')
-rw-r--r--fw/fe310/eos/spi.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/fw/fe310/eos/spi.h b/fw/fe310/eos/spi.h
new file mode 100644
index 0000000..b291ad3
--- /dev/null
+++ b/fw/fe310/eos/spi.h
@@ -0,0 +1,26 @@
+#include <stdint.h>
+#include "event.h"
+#include "spi_dev.h"
+
+#define EOS_SPI_MAX_DEV EOS_DEV_MAX_DEV
+
+#define EOS_SPI_FLAG_TX 0x01
+#define EOS_SPI_FLAG_MORE 0x02
+#define EOS_SPI_FLAG_BSWAP 0x04
+
+void eos_spi_init(void);
+void eos_spi_start(unsigned char dev, uint32_t div, uint32_t csid, uint8_t pin);
+void eos_spi_stop(void);
+void eos_spi_set_handler(unsigned char dev, eos_evt_handler_t handler);
+
+void _eos_spi_xchg_init(unsigned char *buffer, uint16_t len, uint8_t flags);
+void eos_spi_xchg(unsigned char *buffer, uint16_t len, uint8_t flags);
+void eos_spi_handle_xchg(void);
+
+void eos_spi_cs_set(void);
+void eos_spi_cs_clear(void);
+uint8_t eos_spi_xchg8(uint8_t data, uint8_t flags);
+uint16_t eos_spi_xchg16(uint16_t data, uint8_t flags);
+uint32_t eos_spi_xchg24(uint32_t data, uint8_t flags);
+uint32_t eos_spi_xchg32(uint32_t data, uint8_t flags);
+void eos_spi_flush(void);