summaryrefslogtreecommitdiff
path: root/fw/fe310/eos/dev/sdcard.c
diff options
context:
space:
mode:
Diffstat (limited to 'fw/fe310/eos/dev/sdcard.c')
-rw-r--r--fw/fe310/eos/dev/sdcard.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/fw/fe310/eos/dev/sdcard.c b/fw/fe310/eos/dev/sdcard.c
new file mode 100644
index 0000000..1edad96
--- /dev/null
+++ b/fw/fe310/eos/dev/sdcard.c
@@ -0,0 +1,38 @@
+#include <stdlib.h>
+#include <stdint.h>
+
+#include "eos.h"
+
+#include "board.h"
+#include "spi.h"
+
+#include "drv/sdcard.h"
+#include "sdcard.h"
+
+#ifdef EOS_DEBUG
+#include <stdio.h>
+#endif
+
+void eos_sdc_insert(int sdc_det) {
+ int rv;
+
+ rv = EOS_OK;
+ if (sdc_det) {
+ eos_spi_set_div(EOS_SPI_DEV_SDC, 1024); // 100 - 400 kHz
+
+ rv = eos_spi_select(EOS_SPI_DEV_SDC);
+ if (rv) goto sdc_insert_fin;
+
+ rv = sdc_init(1000);
+ eos_spi_deselect();
+
+sdc_insert_fin:
+ eos_spi_set_div(EOS_SPI_DEV_SDC, SPI_DIV_SDC);
+ } else {
+ sdc_clear();
+ }
+
+#ifdef EOS_DEBUG
+ if (rv) printf("SDC INSERT ERR:%d\n", rv);
+#endif
+}