InfiniTime.git

commit 62848b33fb3df756fea17f31c818cd6de7a85b34

Author: Jean-François Milants <jf@codingfield.com>

Power optimization - Improve SPI sleep mode

Calls to Spi::Init() are not needed, pin initialization is already done in ctor().
Remove calls to Spi::Sleep()/Spi::Wakeup() to ensure that SPI CS pins are kept high even in sleep mode.

 src/drivers/SpiNorFlash.cpp | 3 ---
 src/drivers/St7789.cpp | 3 ---


diff --git a/src/drivers/SpiNorFlash.cpp b/src/drivers/SpiNorFlash.cpp
index 525b812c2521327c671304e140ff7030715a52f1..28f82fe6c4bdcc27249ff45f539cd7ac20cfc249 100644
--- a/src/drivers/SpiNorFlash.cpp
+++ b/src/drivers/SpiNorFlash.cpp
@@ -10,7 +10,6 @@ SpiNorFlash::SpiNorFlash(Spi& spi) : spi {spi} {
 }
 
 void SpiNorFlash::Init() {
-  spi.Init();
   device_id = ReadIdentificaion();
   NRF_LOG_INFO("[SpiNorFlash] Manufacturer : %d, Memory type : %d, memory density : %d",
                device_id.manufacturer,
@@ -24,12 +23,10 @@
 void SpiNorFlash::Sleep() {
   auto cmd = static_cast<uint8_t>(Commands::DeepPowerDown);
   spi.Write(&cmd, sizeof(uint8_t));
-  spi.Sleep();
   NRF_LOG_INFO("[SpiNorFlash] Sleep")
 }
 
 void SpiNorFlash::Wakeup() {
-  spi.Wakeup();
   // send Commands::ReleaseFromDeepPowerDown then 3 dummy bytes before reading Device ID
   static constexpr uint8_t cmdSize = 4;
   uint8_t cmd[cmdSize] = {static_cast<uint8_t>(Commands::ReleaseFromDeepPowerDown), 0x01, 0x02, 0x03};




diff --git a/src/drivers/St7789.cpp b/src/drivers/St7789.cpp
index ed98c06da8d28e2358f3390c10115005264540a0..e18c43a38fd5e3b51a68db419bc2f34164275fb7 100644
--- a/src/drivers/St7789.cpp
+++ b/src/drivers/St7789.cpp
@@ -10,7 +10,6 @@ St7789::St7789(Spi& spi, uint8_t pinDataCommand) : spi {spi}, pinDataCommand {pinDataCommand} {
 }
 
 void St7789::Init() {
-  spi.Init();
   nrf_gpio_cfg_output(pinDataCommand);
   nrf_gpio_cfg_output(26);
   nrf_gpio_pin_set(26);
@@ -188,12 +187,10 @@ void St7789::Sleep() {
   SleepIn();
   nrf_gpio_cfg_default(pinDataCommand);
   nrf_gpio_cfg_default(26);
-  spi.Sleep();
   NRF_LOG_INFO("[LCD] Sleep");
 }
 
 void St7789::Wakeup() {
-  spi.Wakeup();
   nrf_gpio_cfg_output(pinDataCommand);
   SleepOut();
   VerticalScrollStartAddress(verticalScrollingStartAddress);