summaryrefslogtreecommitdiff
path: root/src/drivers/storage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/storage.cpp')
-rw-r--r--src/drivers/storage.cpp18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/drivers/storage.cpp b/src/drivers/storage.cpp
index 4f16f1d1..e3dd8f83 100644
--- a/src/drivers/storage.cpp
+++ b/src/drivers/storage.cpp
@@ -23,7 +23,7 @@
#include "hal/spi_types.h"
#include "sdmmc_cmd.h"
-#include "gpio_expander.hpp"
+#include "gpios.hpp"
static const char* kTag = "SDSTORAGE";
static const uint8_t kMaxOpenFiles = 8;
@@ -55,11 +55,10 @@ static esp_err_t do_transaction(sdspi_dev_handle_t handle,
}
} // namespace callback
-auto SdStorage::Create(GpioExpander* gpio) -> cpp::result<SdStorage*, Error> {
- gpio->set_pin(GpioExpander::SD_CARD_POWER_ENABLE_ACTIVE_LOW, 0);
- gpio->set_pin(GpioExpander::SD_MUX_EN_ACTIVE_LOW, 0);
- gpio->set_pin(GpioExpander::SD_MUX_SWITCH, GpioExpander::SD_MUX_ESP);
- gpio->Write();
+auto SdStorage::Create(IGpios* gpio) -> cpp::result<SdStorage*, Error> {
+ gpio->WriteSync(IGpios::Pin::kSdPowerDisable, 0);
+ gpio->WriteSync(IGpios::Pin::kSdMuxSwitch, IGpios::SD_MUX_ESP);
+ gpio->WriteSync(IGpios::Pin::kSdMuxDisable, 0);
sdspi_dev_handle_t handle;
std::unique_ptr<sdmmc_host_t> host;
@@ -114,7 +113,7 @@ auto SdStorage::Create(GpioExpander* gpio) -> cpp::result<SdStorage*, Error> {
std::move(card), fs);
}
-SdStorage::SdStorage(GpioExpander* gpio,
+SdStorage::SdStorage(IGpios* gpio,
esp_err_t (*do_transaction)(sdspi_dev_handle_t,
sdmmc_command_t*),
sdspi_dev_handle_t handle,
@@ -144,9 +143,8 @@ SdStorage::~SdStorage() {
sdspi_host_remove_device(this->handle_);
sdspi_host_deinit();
- gpio_->set_pin(GpioExpander::SD_CARD_POWER_ENABLE_ACTIVE_LOW, 1);
- gpio_->set_pin(GpioExpander::SD_MUX_EN_ACTIVE_LOW, 1);
- gpio_->Write();
+ gpio_->WriteSync(IGpios::Pin::kSdPowerDisable, 1);
+ gpio_->WriteSync(IGpios::Pin::kSdMuxDisable, 1);
}
auto SdStorage::HandleTransaction(sdspi_dev_handle_t handle,