aboutsummaryrefslogtreecommitdiffstats
path: root/src/stm32/sdio.h
diff options
context:
space:
mode:
authorH. Gregor Molter <gregor.molter@secretlab.de>2023-02-20 19:52:36 -0500
committerKevin O'Connor <kevin@koconnor.net>2023-02-20 19:55:25 -0500
commitd7bd7f1f4ba6cecd19daa566fdc1864561269ae1 (patch)
treed57d02e2dd5fb12359b2ba95080241483f02fbb0 /src/stm32/sdio.h
parent848a78d1a548cfe28af20d5d0ab021558368cfae (diff)
downloadkutter-d7bd7f1f4ba6cecd19daa566fdc1864561269ae1.tar.gz
kutter-d7bd7f1f4ba6cecd19daa566fdc1864561269ae1.tar.xz
kutter-d7bd7f1f4ba6cecd19daa566fdc1864561269ae1.zip
stm32: Add sdio support
Adds sdio support for the stm32f4 to allow for SD card flash updates without power cycling some boards, e.g. BTT Octopus Pro. Signed-off-by: H. Gregor Molter <gregor.molter@secretlab.de> Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/stm32/sdio.h')
-rw-r--r--src/stm32/sdio.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/stm32/sdio.h b/src/stm32/sdio.h
new file mode 100644
index 00000000..eaf6596f
--- /dev/null
+++ b/src/stm32/sdio.h
@@ -0,0 +1,25 @@
+#ifndef __STM32_SDIO_H
+#define __STM32_SDIO_H
+
+#include <stdint.h> // uint32_t
+
+struct sdio_config {
+ void *sdio;
+};
+struct sdio_config sdio_setup(uint32_t bus);
+void sdio_send_cmd(struct sdio_config sdio, uint8_t cmd, uint32_t argument
+ , uint8_t wait);
+uint8_t sdio_send_command(struct sdio_config sdio_config, uint8_t cmd
+ , uint32_t argument, uint8_t wait
+ , uint8_t *response_data
+ , uint8_t *response_data_len);
+uint8_t sdio_prepare_data_transfer(struct sdio_config sdio_config, uint8_t read
+ , uint32_t numblocks, uint32_t blocksize
+ , uint32_t timeout);
+uint8_t sdio_read_data(struct sdio_config sdio_config, uint8_t *data
+ , uint32_t numblocks, uint32_t blocksize);
+uint8_t sdio_write_data(struct sdio_config sdio_config, uint8_t *data
+ , uint32_t numblocks, uint32_t blocksize);
+void sdio_set_speed(struct sdio_config sdio_config, uint32_t speed);
+
+#endif // sdio.h