Revert "Workaround for SPI bus being asleep."
This reverts commit 1edeb5cb65489707c26b7a65f3b54520086d363a.
This commit is contained in:
		
							parent
							
								
									d89e38d3bf
								
							
						
					
					
						commit
						a5a64800ed
					
				@ -10,7 +10,7 @@ SpiMaster::SpiMaster(const SpiMaster::SpiModule spi, const SpiMaster::Parameters
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool SpiMaster::Init() {
 | 
			
		||||
  if (mutex == nullptr) {
 | 
			
		||||
  if(mutex == nullptr) {
 | 
			
		||||
    mutex = xSemaphoreCreateBinary();
 | 
			
		||||
    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) {
 | 
			
		||||
  if (data == nullptr)
 | 
			
		||||
    return false;
 | 
			
		||||
 | 
			
		||||
  if (!active) {
 | 
			
		||||
    Wakeup();
 | 
			
		||||
  }
 | 
			
		||||
  auto ok = xSemaphoreTake(mutex, portMAX_DELAY);
 | 
			
		||||
  ASSERT(ok == true);
 | 
			
		||||
  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) {
 | 
			
		||||
  xSemaphoreTake(mutex, portMAX_DELAY);
 | 
			
		||||
  if (!active) {
 | 
			
		||||
    Wakeup();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  taskToNotify = nullptr;
 | 
			
		||||
 | 
			
		||||
  this->pinCsn = pinCsn;
 | 
			
		||||
@ -259,16 +253,12 @@ void SpiMaster::Sleep() {
 | 
			
		||||
  nrf_gpio_cfg_default(params.pinSCK);
 | 
			
		||||
  nrf_gpio_cfg_default(params.pinMOSI);
 | 
			
		||||
  nrf_gpio_cfg_default(params.pinMISO);
 | 
			
		||||
  active = false;
 | 
			
		||||
 | 
			
		||||
  NRF_LOG_INFO("[SPIMASTER] sleep")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void SpiMaster::Wakeup() {
 | 
			
		||||
  if (active) {
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
  Init();
 | 
			
		||||
  active = true;
 | 
			
		||||
  NRF_LOG_INFO("[SPIMASTER] Wakeup");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -60,8 +60,6 @@ namespace Pinetime {
 | 
			
		||||
      volatile size_t currentBufferSize = 0;
 | 
			
		||||
      volatile TaskHandle_t taskToNotify;
 | 
			
		||||
      SemaphoreHandle_t mutex = nullptr;
 | 
			
		||||
 | 
			
		||||
      bool active;
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user