Revert "Workaround for SPI bus being asleep."

This reverts commit 1edeb5cb65489707c26b7a65f3b54520086d363a.
This commit is contained in:
Tim Keller 2021-10-19 19:15:41 +00:00
parent d89e38d3bf
commit a5a64800ed
2 changed files with 3 additions and 15 deletions

View File

@ -10,7 +10,7 @@ SpiMaster::SpiMaster(const SpiMaster::SpiModule spi, const SpiMaster::Parameters
} }
bool SpiMaster::Init() { bool SpiMaster::Init() {
if (mutex == nullptr) { if(mutex == nullptr) {
mutex = xSemaphoreCreateBinary(); mutex = xSemaphoreCreateBinary();
ASSERT(mutex != nullptr); ASSERT(mutex != nullptr);
} }
@ -179,10 +179,6 @@ void SpiMaster::PrepareRx(const volatile uint32_t cmdAddress,
bool SpiMaster::Write(uint8_t pinCsn, const uint8_t* data, size_t size) { bool SpiMaster::Write(uint8_t pinCsn, const uint8_t* data, size_t size) {
if (data == nullptr) if (data == nullptr)
return false; return false;
if (!active) {
Wakeup();
}
auto ok = xSemaphoreTake(mutex, portMAX_DELAY); auto ok = xSemaphoreTake(mutex, portMAX_DELAY);
ASSERT(ok == true); ASSERT(ok == true);
taskToNotify = xTaskGetCurrentTaskHandle(); taskToNotify = xTaskGetCurrentTaskHandle();
@ -219,9 +215,7 @@ bool SpiMaster::Write(uint8_t pinCsn, const uint8_t* data, size_t size) {
bool SpiMaster::Read(uint8_t pinCsn, uint8_t* cmd, size_t cmdSize, uint8_t* data, size_t dataSize) { bool SpiMaster::Read(uint8_t pinCsn, uint8_t* cmd, size_t cmdSize, uint8_t* data, size_t dataSize) {
xSemaphoreTake(mutex, portMAX_DELAY); xSemaphoreTake(mutex, portMAX_DELAY);
if (!active) {
Wakeup();
}
taskToNotify = nullptr; taskToNotify = nullptr;
this->pinCsn = pinCsn; this->pinCsn = pinCsn;
@ -259,16 +253,12 @@ void SpiMaster::Sleep() {
nrf_gpio_cfg_default(params.pinSCK); nrf_gpio_cfg_default(params.pinSCK);
nrf_gpio_cfg_default(params.pinMOSI); nrf_gpio_cfg_default(params.pinMOSI);
nrf_gpio_cfg_default(params.pinMISO); nrf_gpio_cfg_default(params.pinMISO);
active = false;
NRF_LOG_INFO("[SPIMASTER] sleep") NRF_LOG_INFO("[SPIMASTER] sleep")
} }
void SpiMaster::Wakeup() { void SpiMaster::Wakeup() {
if (active) {
return;
}
Init(); Init();
active = true;
NRF_LOG_INFO("[SPIMASTER] Wakeup"); NRF_LOG_INFO("[SPIMASTER] Wakeup");
} }

View File

@ -60,8 +60,6 @@ namespace Pinetime {
volatile size_t currentBufferSize = 0; volatile size_t currentBufferSize = 0;
volatile TaskHandle_t taskToNotify; volatile TaskHandle_t taskToNotify;
SemaphoreHandle_t mutex = nullptr; SemaphoreHandle_t mutex = nullptr;
bool active;
}; };
} }
} }