summaryrefslogtreecommitdiff
path: root/src/drivers/storage.cpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2025-01-10 02:17:11 +0000
committercooljqln <cooljqln@noreply.codeberg.org>2025-01-10 02:17:11 +0000
commit94c30b759192231b8172bbb7d81125c8181261a1 (patch)
tree3000ddfd33ddb3598f0f8546b94550bad500ec88 /src/drivers/storage.cpp
parent90118996194d90449e7e7d1fbeb08da587b10642 (diff)
downloadtangara-fw-94c30b759192231b8172bbb7d81125c8181261a1.tar.gz
Isolate the SD card from the SPI bus when talking to the display (#176)
This should help significantly with https://codeberg.org/cool-tech-zone/tangara-fw/issues/121, which seems to be caused by some SD cards being very picky about being the only SPI device on their bus. Co-authored-by: ailurux <ailuruxx@gmail.com> Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/176 Co-authored-by: jacqueline <me@jacqueline.id.au> Co-committed-by: jacqueline <me@jacqueline.id.au>
Diffstat (limited to 'src/drivers/storage.cpp')
-rw-r--r--src/drivers/storage.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/drivers/storage.cpp b/src/drivers/storage.cpp
index 09702a8c..ed6af1dd 100644
--- a/src/drivers/storage.cpp
+++ b/src/drivers/storage.cpp
@@ -35,8 +35,8 @@ const char* kStoragePath = "/sd";
auto SdStorage::Create(IGpios& gpio) -> cpp::result<SdStorage*, Error> {
gpio.WriteSync(IGpios::Pin::kSdPowerEnable, 1);
- gpio.WriteSync(IGpios::Pin::kSdMuxSwitch, IGpios::SD_MUX_ESP);
- gpio.WriteSync(IGpios::Pin::kSdMuxDisable, 0);
+ gpio.SdMuxTarget(IGpios::SD_MUX_ESP);
+ gpio.SdMuxEnable(true);
sdspi_dev_handle_t handle;
FATFS* fs = nullptr;
@@ -119,7 +119,7 @@ SdStorage::~SdStorage() {
sdspi_host_remove_device(this->handle_);
sdspi_host_deinit();
- gpio_.WriteSync(IGpios::Pin::kSdMuxDisable, 1);
+ gpio_.SdMuxEnable(false);
gpio_.WriteSync(IGpios::Pin::kSdPowerEnable, 0);
}